bpo-42799: fnmatch module: bump up size of lru_cache for patterns (GH-27084)

This commit is contained in:
andrei kulakov 2021-07-15 06:53:26 -04:00 committed by GitHub
parent 3527569f1c
commit b39eea06d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 1 deletions

View file

@ -46,6 +46,9 @@ module. See module :mod:`glob` for pathname expansion (:mod:`glob` uses
a period are not special for this module, and are matched by the ``*`` and ``?``
patterns.
Also note that :func:`functools.lru_cache` with the *maxsize* of 32768 is used to
cache the compiled regex patterns in the following functions: :func:`fnmatch`,
:func:`fnmatchcase`, :func:`filter`.
.. function:: fnmatch(filename, pattern)

View file

@ -41,7 +41,7 @@ def fnmatch(name, pat):
pat = os.path.normcase(pat)
return fnmatchcase(name, pat)
@functools.lru_cache(maxsize=256, typed=True)
@functools.lru_cache(maxsize=32768, typed=True)
def _compile_pattern(pat):
if isinstance(pat, bytes):
pat_str = str(pat, 'ISO-8859-1')

View file

@ -0,0 +1,4 @@
In :mod:`fnmatch`, the cache size for compiled regex patterns
(:func:`functools.lru_cache`) was bumped up from 256 to 32768, affecting
functions: :func:`fnmatch.fnmatch`, :func:`fnmatch.fnmatchcase`,
:func:`fnmatch.filter`.