mirror of
https://github.com/python/cpython.git
synced 2024-11-24 00:38:00 +01:00
Simplify calls in fnmatch.
This commit is contained in:
parent
cd9fdfd652
commit
db84803562
@ -35,9 +35,9 @@ def fnmatch(name, pat):
|
||||
pat = os.path.normcase(pat)
|
||||
return fnmatchcase(name, pat)
|
||||
|
||||
@functools.lru_cache(maxsize=250)
|
||||
def _compile_pattern(pat, is_bytes=False):
|
||||
if is_bytes:
|
||||
@functools.lru_cache(maxsize=250, typed=True)
|
||||
def _compile_pattern(pat):
|
||||
if isinstance(pat, bytes):
|
||||
pat_str = str(pat, 'ISO-8859-1')
|
||||
res_str = translate(pat_str)
|
||||
res = bytes(res_str, 'ISO-8859-1')
|
||||
@ -49,7 +49,7 @@ def filter(names, pat):
|
||||
"""Return the subset of the list NAMES that match PAT."""
|
||||
result = []
|
||||
pat = os.path.normcase(pat)
|
||||
match = _compile_pattern(pat, isinstance(pat, bytes))
|
||||
match = _compile_pattern(pat)
|
||||
if os.path is posixpath:
|
||||
# normcase on posix is NOP. Optimize it away from the loop.
|
||||
for name in names:
|
||||
@ -67,7 +67,7 @@ def fnmatchcase(name, pat):
|
||||
This is a version of fnmatch() which doesn't case-normalize
|
||||
its arguments.
|
||||
"""
|
||||
match = _compile_pattern(pat, isinstance(pat, bytes))
|
||||
match = _compile_pattern(pat)
|
||||
return match(name) is not None
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user