From 20caa1feca06be2ca050cd20a045458682408191 Mon Sep 17 00:00:00 2001 From: Silver Date: Wed, 18 Jun 2025 14:05:43 +0100 Subject: [PATCH] Improve .gitignore iteration speed --- src/scikit_build_core/build/_file_processor.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/scikit_build_core/build/_file_processor.py b/src/scikit_build_core/build/_file_processor.py index f084d3a4..8419c011 100644 --- a/src/scikit_build_core/build/_file_processor.py +++ b/src/scikit_build_core/build/_file_processor.py @@ -46,11 +46,12 @@ def each_unignored_file( global_exclude_lines += f.readlines() nested_excludes = { - p.parent: pathspec.GitIgnoreSpec.from_lines( - p.read_text(encoding="utf-8").splitlines() + Path(dirpath): pathspec.GitIgnoreSpec.from_lines( + (Path(dirpath) / filename).read_text(encoding="utf-8").splitlines() ) - for p in Path().rglob("**/.gitignore") - if p != Path(".gitignore") + for dirpath, _, filenames in os.walk(".") + for filename in filenames + if filename == ".gitignore" and dirpath != "." } exclude_build_dir = build_dir.format(**pyproject_format(dummy=True))