|
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