From f0bdf79767c2cd871ccd1caff542c103b797bdc8 Mon Sep 17 00:00:00 2001 From: Samuel Abels Date: Thu, 29 May 2025 20:18:40 +0200 Subject: [PATCH] CAM: Fix: case_sensitive argument for glob() not supported in Python 2.10 --- src/Mod/CAM/Path/Tool/assets/store/filestore.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Mod/CAM/Path/Tool/assets/store/filestore.py b/src/Mod/CAM/Path/Tool/assets/store/filestore.py index 9db0f29cb5..129623f6c6 100644 --- a/src/Mod/CAM/Path/Tool/assets/store/filestore.py +++ b/src/Mod/CAM/Path/Tool/assets/store/filestore.py @@ -29,6 +29,17 @@ from .base import AssetStore def _resolve_case_insensitive(path: pathlib.Path) -> pathlib.Path: if path.is_file(): return path + + # pathlib in Python 2.10 (2.1x versions) does not support + # 'case_sensitive' argument in glob. Instead, simulate + # case-insensitive search manually + pattern = path.name.lower() + for p in path.parent.glob("*"): + if p.name.lower() == pattern: + return p + return path + + # Use this starting Python 2.13: try: return next(path.parent.glob(path.name, case_sensitive=False)) except StopIteration: