|
11 | 11 | WritablePath. |
12 | 12 | """ |
13 | 13 |
|
14 | | -import functools |
15 | 14 | from abc import ABC, abstractmethod |
16 | 15 | from glob import _PathGlobber, _no_recurse_symlinks |
17 | 16 | from pathlib import PurePath, Path |
18 | 17 | from pathlib._os import magic_open, CopyReader, CopyWriter |
19 | 18 |
|
20 | 19 |
|
21 | | -@functools.cache |
22 | | -def _is_case_sensitive(parser): |
23 | | - return parser.normcase('Aa') == 'Aa' |
24 | | - |
25 | | - |
26 | 20 | def _explode_path(path): |
27 | 21 | """ |
28 | 22 | Split the path into a 2-tuple (anchor, parts), where *anchor* is the |
@@ -201,7 +195,7 @@ def full_match(self, pattern, *, case_sensitive=None): |
201 | 195 | if not isinstance(pattern, JoinablePath): |
202 | 196 | pattern = self.with_segments(pattern) |
203 | 197 | if case_sensitive is None: |
204 | | - case_sensitive = _is_case_sensitive(self.parser) |
| 198 | + case_sensitive = self.parser.normcase('Aa') == 'Aa' |
205 | 199 | globber = _PathGlobber(pattern.parser.sep, case_sensitive, recursive=True) |
206 | 200 | match = globber.compile(str(pattern)) |
207 | 201 | return match(str(self)) is not None |
@@ -297,13 +291,12 @@ def glob(self, pattern, *, case_sensitive=None, recurse_symlinks=True): |
297 | 291 | anchor, parts = _explode_path(pattern) |
298 | 292 | if anchor: |
299 | 293 | raise NotImplementedError("Non-relative patterns are unsupported") |
| 294 | + case_sensitive_default = self.parser.normcase('Aa') == 'Aa' |
300 | 295 | if case_sensitive is None: |
301 | | - case_sensitive = _is_case_sensitive(self.parser) |
302 | | - case_pedantic = False |
303 | | - elif case_sensitive == _is_case_sensitive(self.parser): |
| 296 | + case_sensitive = case_sensitive_default |
304 | 297 | case_pedantic = False |
305 | 298 | else: |
306 | | - case_pedantic = True |
| 299 | + case_pedantic = case_sensitive_default != case_sensitive |
307 | 300 | recursive = True if recurse_symlinks else _no_recurse_symlinks |
308 | 301 | globber = _PathGlobber(self.parser.sep, case_sensitive, case_pedantic, recursive) |
309 | 302 | select = globber.selector(parts) |
|
0 commit comments