fnmatch: Fix compatibility with ure -> re.

With the recent MicroPython change to remove the u prefix by default on
builtins (micropython/micropython#11740) the format checker in fnmatch
which was detecting ure no longer works.

This commit updates the module to filter the regex automatically as needed.

Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
pull/698/head
Andrew Leech 2023-07-06 13:53:43 +10:00 zatwierdzone przez Damien George
rodzic 6103823b1b
commit e45a7f6c18
2 zmienionych plików z 9 dodań i 5 usunięć

Wyświetl plik

@ -27,8 +27,6 @@ except ImportError:
__all__ = ["filter", "fnmatch", "fnmatchcase", "translate"]
COMPAT = re.__name__ == "ure"
def fnmatch(name, pat):
"""Test whether FILENAME matches PATTERN.
@ -58,12 +56,18 @@ def _compile_pattern(pat):
res = bytes(res_str, "ISO-8859-1")
else:
res = translate(pat)
if COMPAT:
try:
ptn = re.compile(res)
except ValueError:
# re1.5 doesn't support all regex features
if res.startswith("(?ms)"):
res = res[5:]
if res.endswith("\\Z"):
res = res[:-2] + "$"
return re.compile(res).match
ptn = re.compile(res)
return ptn.match
def filter(names, pat):

Wyświetl plik

@ -1,3 +1,3 @@
metadata(version="0.6.0")
metadata(version="0.6.1")
module("fnmatch.py")