From 81e5d0f7b053d0f1d571a1b70d04adaf02d10c81 Mon Sep 17 00:00:00 2001 From: Charles Brunet Date: Tue, 28 Jan 2025 16:23:44 -0500 Subject: [PATCH] Optimize canonicalize_filename Using str.split is faster than Path.parts --- mesonbuild/backend/backends.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 0c181e56fb53..e188e17c08b4 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -832,7 +832,9 @@ def determine_rpath_dirs(self, target: T.Union[build.BuildTarget, build.CustomTa @staticmethod @lru_cache(maxsize=None) def canonicalize_filename(fname: str) -> str: - parts = Path(fname).parts + if os.path.altsep is not None: + fname = fname.replace(os.path.altsep, os.path.sep) + parts = fname.split(os.path.sep) hashed = '' if len(parts) > 5: temp = '/'.join(parts[-5:])