Skip to content

Conversation

@barneygale
Copy link
Contributor

@barneygalebarneygale commented Mar 9, 2025

Remove the case_sensitive argument from _JoinablePath.full_match() and _ReadablePath.glob(). Using a non-native case sensitivity forces the use of "case-pedantic" globbing, where we iterdir() even for non-wildcard pattern segments. But it's hard to know when to enable this mode, as case-sensitivity can vary by directory, so _PathParser.normcase() doesn't always give the full picture. The Path.glob() implementation is forced to make an educated guess, but we can avoid the issue in the ABCs by dropping the case_sensitive argument.

(I probably shouldn't have added this argument in Path.glob() in the first place!)

Also drop support for _ReadablePath.glob(recurse_symlinks=False), which makes recursive globbing much slower.

No change to the public pathlib classes.

Remove the *case_sensitive* argument from `_JoinablePath.full_match()` and `_ReadablePath.glob()`. Using a non-native case sensitivity forces the use of "case-pedantic" globbing, where we `iterdir()` even for non-wildcard pattern segments. But it's hard to know when to enable this mode, as case-sensitivity can vary by directory, so `_PathParser.normcase()` doesn't always give the full picture. The `Path.glob()` implementation is forced to make an educated guess, but we can avoid the issue in the ABCs by dropping the *case_sensitive* argument. (I probably shouldn't have added these arguments in `PurePath` and `Path` in the first place!) Also drop support for `_ReadablePath.glob(recurse_symlinks=False)`, which makes recursive globbing much slower.
@barneygalebarneygale merged commit 93fc3d3 into python:mainMar 10, 2025
44 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@barneygale