From 434b968ee2564b9d41808122d365fa2c512f23c6 Mon Sep 17 00:00:00 2001 From: Patryk Kaminski Date: Tue, 6 May 2025 14:00:07 +0200 Subject: [PATCH] [CI][Perf] Fix sorting benchmark results files Sort datetime objects instead of strings to get the proper result files list. --- devops/scripts/benchmarks/history.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/devops/scripts/benchmarks/history.py b/devops/scripts/benchmarks/history.py index ae8ac16c264bf..68a32d229cd7d 100644 --- a/devops/scripts/benchmarks/history.py +++ b/devops/scripts/benchmarks/history.py @@ -40,13 +40,15 @@ def load(self, n: int): benchmark_files = list(results_dir.glob("*.json")) # Extract timestamp and sort files by it - def extract_timestamp(file_path: Path) -> str: + def extract_timestamp(file_path: Path) -> datetime: try: # Assumes results are stored as _YYYYMMDD_HHMMSS.json ts = file_path.stem[-len("YYYYMMDD_HHMMSS") :] - return ts if Validate.timestamp(ts) else "" - except IndexError: - return "" + if Validate.timestamp(ts): + return datetime.strptime(ts, "%Y%m%d_%H%M%S") + return datetime.fromtimestamp(0) # Default to epoch if invalid + except (IndexError, ValueError): + return datetime.fromtimestamp(0) # Default to epoch if exception benchmark_files.sort(key=extract_timestamp, reverse=True)