From a19a216bc60160c162e616145ef091dd18ce4e61 Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Tue, 16 Feb 2021 14:40:46 -0600 Subject: Python 0.9.1 as posted in alt.sources --- lib/fnmatch.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/fnmatch.py (limited to 'lib/fnmatch.py') diff --git a/lib/fnmatch.py b/lib/fnmatch.py new file mode 100644 index 0000000..8f9e318 --- /dev/null +++ b/lib/fnmatch.py @@ -0,0 +1,35 @@ +# module 'fnmatch' -- filename matching with shell patterns + +# XXX [] patterns are not supported (but recognized) + +def fnmatch(name, pat): + if '*' in pat or '?' in pat or '[' in pat: + return fnmatch1(name, pat) + return name = pat + +def fnmatch1(name, pat): + for i in range(len(pat)): + c = pat[i] + if c = '*': + restpat = pat[i+1:] + if '*' in restpat or '?' in restpat or '[' in restpat: + for i in range(i, len(name)): + if fnmatch1(name[i:], restpat): + return 1 + return 0 + else: + return name[len(name)-len(restpat):] = restpat + elif c = '?': + if len(name) <= i : return 0 + elif c = '[': + return 0 # XXX + else: + if name[i:i+1] <> c: + return 0 + return 1 + +def fnmatchlist(names, pat): + res = [] + for name in names: + if fnmatch(name, pat): res.append(name) + return res -- cgit v1.2.3