11"""Match wildcard filenames.
22
3- Patterns are derived from Unix shell style:
3+ Patterns are derived from Unix shell style:
44
5- * matches everything except for a path seperator
6- ** matches everything
7- ? matches any single character
8- [seq] matches any character in seq
9- [!seq] matches any char not in seq
5+ * matches everything except for a path seperator
6+ ** matches everything
7+ ? matches any single character
8+ [seq] matches any character in seq
9+ [!seq] matches any char not in seq
1010"""
1111
1212from __future__ import unicode_literals , print_function
1919 from typing import Callable , Iterable , Text , Tuple
2020
2121
22- _PATTERN_CACHE = LRUCache (1000 ) # type: LRUCache[Tuple[Text, bool, bool], PatternMatcher]
22+ _PATTERN_CACHE = LRUCache (
23+ 1000
24+ ) # type: LRUCache[Tuple[Text, bool, bool], _PatternMatcher]
2325
2426
2527def match (pattern , name , accept_prefix = False ):
@@ -38,7 +40,7 @@ def match(pattern, name, accept_prefix=False):
3840 try :
3941 pat = _PATTERN_CACHE [args ]
4042 except KeyError :
41- pat = PatternMatcher (* args )
43+ pat = _PatternMatcher (* args )
4244 _PATTERN_CACHE [args ] = pat
4345 return pat (name )
4446
@@ -59,7 +61,7 @@ def imatch(pattern, name, accept_prefix=False):
5961 try :
6062 pat = _PATTERN_CACHE [args ]
6163 except KeyError :
62- pat = PatternMatcher (* args )
64+ pat = _PatternMatcher (* args )
6365 _PATTERN_CACHE [args ] = pat
6466 return pat (name )
6567
@@ -138,7 +140,7 @@ def get_matcher(patterns, case_sensitive, accept_prefix=False):
138140 return lambda name : imatch_any (patterns , name , accept_prefix )
139141
140142
141- class PatternMatcher :
143+ class _PatternMatcher :
142144 def __init__ (self , pattern , case_sensitive , accept_prefixes ):
143145 self .case_sensitive = case_sensitive
144146 self .accept_prefixes = accept_prefixes
@@ -151,16 +153,24 @@ def __init__(self, pattern, case_sensitive, accept_prefixes):
151153 i = pattern .find ("]" , i ) + 1
152154 self .tokens .append (_PatternMatcherToken (pattern [start :i ]))
153155 elif pattern [i ] == "]" :
154- raise ValueError (pattern + " is not a valid wildcard pattern. (unmatched ])" )
156+ raise ValueError (
157+ pattern + " is not a valid wildcard pattern. (unmatched ])"
158+ )
155159 elif pattern [i ] == "?" :
156160 self .tokens .append (_PatternMatcherToken ("?" ))
157161 i += 1
158162 elif pattern [i ] == "*" :
159163 asterik_len = 1
160- while (asterik_len + i ) < len (pattern ) and pattern [asterik_len + i ] == "*" :
164+ while (asterik_len + i ) < len (pattern ) and pattern [
165+ asterik_len + i
166+ ] == "*" :
161167 asterik_len += 1
162168 if asterik_len > 2 :
163- raise ValueError (pattern + " is not a valid wildcard pattern. (sequence of three or more *)" )
169+ raise ValueError (
170+ pattern
171+ + " is not a valid wildcard pattern. "
172+ + "(sequence of three or more *)"
173+ )
164174 self .tokens .append (_PatternMatcherToken ("*" * asterik_len ))
165175 i += asterik_len
166176 else :
0 commit comments