2
0
Эх сурвалжийг харах

Flexible default pattern style

A function to parse pattern specifications was introduced in commit
2bafece. Since then it had a hardcoded default style of “fm”, meaning
fnmatch. With the forthcoming support for extracting files using
patterns this default style must be more flexible.
Michael Hanselmann 10 жил өмнө
parent
commit
b6362b5963
1 өөрчлөгдсөн 6 нэмэгдсэн , 6 устгасан
  1. 6 6
      borg/helpers.py

+ 6 - 6
borg/helpers.py

@@ -418,18 +418,18 @@ _PATTERN_STYLES = set([
 _PATTERN_STYLE_BY_PREFIX = dict((i.PREFIX, i) for i in _PATTERN_STYLES)
 
 
-def parse_pattern(pattern):
+def parse_pattern(pattern, fallback=FnmatchPattern):
     """Read pattern from string and return an instance of the appropriate implementation class.
     """
     if len(pattern) > 2 and pattern[2] == ":" and pattern[:2].isalnum():
         (style, pattern) = (pattern[:2], pattern[3:])
-    else:
-        style = FnmatchPattern.PREFIX
 
-    cls = _PATTERN_STYLE_BY_PREFIX.get(style, None)
+        cls = _PATTERN_STYLE_BY_PREFIX.get(style, None)
 
-    if cls is None:
-        raise ValueError("Unknown pattern style: {}".format(style))
+        if cls is None:
+            raise ValueError("Unknown pattern style: {}".format(style))
+    else:
+        cls = fallback
 
     return cls(pattern)