-
-
Notifications
You must be signed in to change notification settings - Fork 33.7k
Open
Labels
Description
Bug report
Bug description:
Until 3.11 included, all rglob calls were always returning sorted paths. Or at least, for the code snippet below. Starting at 3.12, this changed. I could not find any warning about it, so I thought it might be a bug.
Here is a reproducible example which can be run as uv run --python X script.py being X either 3.11 or 3.12:
import sys
import tempfile
from pathlib import Path
base = Path(tempfile.mkdtemp(prefix="rppf_tmp_"))
paths = [
"pipeline_1/20251219-092921_011 - p_analysis/input_arguments.yaml",
"pipeline_1/20251219-092921_011 - p_analysis/iso_metrics.yaml",
"pipeline_1/20251219-092921_011 - p_analysis/results.yaml",
"pipeline_1/20251219-092921_271 - signal_visualization/input_arguments.yaml",
"pipeline_1/20251219-092921_271 - signal_visualization/signals_compressed.parquet",
"pipeline_1/20251219-092921_532 - p_analysis/input_arguments.yaml",
"pipeline_1/20251219-092921_532 - p_analysis/iso_metrics.yaml",
"pipeline_1/20251219-092921_532 - p_analysis/results.yaml",
"pipeline_1/20251219-092921_532 - p_analysis/.metadata/metadata.yaml",
"pipeline_1/20251219-092921_271 - signal_visualization/.metadata/metadata.yaml",
"pipeline_1/20251219-092921_011 - p_analysis/.metadata/metadata.yaml",
"pipeline_0/20251219-092917_103 - p_analysis/input_arguments.yaml",
"pipeline_0/20251219-092917_103 - p_analysis/iso_metrics.yaml",
"pipeline_0/20251219-092917_103 - p_analysis/results.yaml",
"pipeline_0/20251219-092918_258 - signal_visualization/input_arguments.yaml",
"pipeline_0/20251219-092918_258 - signal_visualization/signals_compressed.parquet",
"pipeline_0/20251219-092918_525 - p_analysis/input_arguments.yaml",
"pipeline_0/20251219-092918_525 - p_analysis/iso_metrics.yaml",
"pipeline_0/20251219-092918_525 - p_analysis/results.yaml",
"pipeline_0/20251219-092918_525 - p_analysis/.metadata/metadata.yaml",
"pipeline_0/20251219-092918_258 - signal_visualization/.metadata/metadata.yaml",
"pipeline_0/20251219-092917_103 - p_analysis/.metadata/metadata.yaml",
]
for p in paths:
f = base / p
f.parent.mkdir(parents=True, exist_ok=True)
f.touch()
print(sys.version)
for file in [p for p in base.rglob("*") if not p.is_dir()]:
print(file.relative_to(base).as_posix())With 3.11
3.11.14 (main, Dec 9 2025, 18:59:10) [MSC v.1944 64 bit (AMD64)]
pipeline_0/20251219-092917_103 - p_analysis/input_arguments.yaml
pipeline_0/20251219-092917_103 - p_analysis/iso_metrics.yaml
pipeline_0/20251219-092917_103 - p_analysis/results.yaml
pipeline_0/20251219-092917_103 - p_analysis/.metadata/metadata.yaml
pipeline_0/20251219-092918_258 - signal_visualization/input_arguments.yaml
pipeline_0/20251219-092918_258 - signal_visualization/signals_compressed.parquet
pipeline_0/20251219-092918_258 - signal_visualization/.metadata/metadata.yaml
pipeline_0/20251219-092918_525 - p_analysis/input_arguments.yaml
pipeline_0/20251219-092918_525 - p_analysis/iso_metrics.yaml
pipeline_0/20251219-092918_525 - p_analysis/results.yaml
pipeline_0/20251219-092918_525 - p_analysis/.metadata/metadata.yaml
pipeline_1/20251219-092921_011 - p_analysis/input_arguments.yaml
pipeline_1/20251219-092921_011 - p_analysis/iso_metrics.yaml
pipeline_1/20251219-092921_011 - p_analysis/results.yaml
pipeline_1/20251219-092921_011 - p_analysis/.metadata/metadata.yaml
pipeline_1/20251219-092921_271 - signal_visualization/input_arguments.yaml
pipeline_1/20251219-092921_271 - signal_visualization/signals_compressed.parquet
pipeline_1/20251219-092921_271 - signal_visualization/.metadata/metadata.yaml
pipeline_1/20251219-092921_532 - p_analysis/input_arguments.yaml
pipeline_1/20251219-092921_532 - p_analysis/iso_metrics.yaml
pipeline_1/20251219-092921_532 - p_analysis/results.yaml
pipeline_1/20251219-092921_532 - p_analysis/.metadata/metadata.yaml
With 3.12
3.12.11 (main, Jul 1 2025, 18:33:58) [MSC v.1944 64 bit (AMD64)]
pipeline_0/20251219-092917_103 - p_analysis/input_arguments.yaml
pipeline_0/20251219-092917_103 - p_analysis/iso_metrics.yaml
pipeline_0/20251219-092917_103 - p_analysis/results.yaml
pipeline_0/20251219-092918_258 - signal_visualization/input_arguments.yaml
pipeline_0/20251219-092918_258 - signal_visualization/signals_compressed.parquet
pipeline_0/20251219-092918_525 - p_analysis/input_arguments.yaml
pipeline_0/20251219-092918_525 - p_analysis/iso_metrics.yaml
pipeline_0/20251219-092918_525 - p_analysis/results.yaml
pipeline_0/20251219-092917_103 - p_analysis/.metadata/metadata.yaml
pipeline_0/20251219-092918_258 - signal_visualization/.metadata/metadata.yaml
pipeline_0/20251219-092918_525 - p_analysis/.metadata/metadata.yaml
pipeline_1/20251219-092921_011 - p_analysis/input_arguments.yaml
pipeline_1/20251219-092921_011 - p_analysis/iso_metrics.yaml
pipeline_1/20251219-092921_011 - p_analysis/results.yaml
pipeline_1/20251219-092921_271 - signal_visualization/input_arguments.yaml
pipeline_1/20251219-092921_271 - signal_visualization/signals_compressed.parquet
pipeline_1/20251219-092921_532 - p_analysis/input_arguments.yaml
pipeline_1/20251219-092921_532 - p_analysis/iso_metrics.yaml
pipeline_1/20251219-092921_532 - p_analysis/results.yaml
pipeline_1/20251219-092921_011 - p_analysis/.metadata/metadata.yaml
pipeline_1/20251219-092921_271 - signal_visualization/.metadata/metadata.yaml
pipeline_1/20251219-092921_532 - p_analysis/.metadata/metadata.yaml
CPython versions tested on:
3.12
Operating systems tested on:
Windows
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status
Todo