diff options
author | andrei kulakov <andrei.avk@gmail.com> | 2021-07-15 10:53:26 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-15 10:53:26 (GMT) |
commit | b39eea06d148887dd91a3612febafbddda760593 (patch) | |
tree | b6fd78e7b77aa1cedb14ffe130ab955db0189912 | |
parent | 3527569f1cd0df697242b68a8a837f08904872fe (diff) | |
download | cpython-b39eea06d148887dd91a3612febafbddda760593.zip cpython-b39eea06d148887dd91a3612febafbddda760593.tar.gz cpython-b39eea06d148887dd91a3612febafbddda760593.tar.bz2 |
bpo-42799: fnmatch module: bump up size of lru_cache for patterns (GH-27084)
-rw-r--r-- | Doc/library/fnmatch.rst | 3 | ||||
-rw-r--r-- | Lib/fnmatch.py | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2021-07-10-19-55-13.bpo-42799.ad4tq8.rst | 4 |
3 files changed, 8 insertions, 1 deletions
diff --git a/Doc/library/fnmatch.rst b/Doc/library/fnmatch.rst index 925f08e..9163da5 100644 --- a/Doc/library/fnmatch.rst +++ b/Doc/library/fnmatch.rst @@ -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) diff --git a/Lib/fnmatch.py b/Lib/fnmatch.py index 7c52c23..239c749 100644 --- a/Lib/fnmatch.py +++ b/Lib/fnmatch.py @@ -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') diff --git a/Misc/NEWS.d/next/Library/2021-07-10-19-55-13.bpo-42799.ad4tq8.rst b/Misc/NEWS.d/next/Library/2021-07-10-19-55-13.bpo-42799.ad4tq8.rst new file mode 100644 index 0000000..8a25800 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-07-10-19-55-13.bpo-42799.ad4tq8.rst @@ -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`. |