Example #1
0
 def _compile_patterns(cls, patterns, field_name="Unknown", spec="Unknown"):
   compiled_patterns = []
   for p in patterns:
     try:
       compiled_patterns.append(re.compile(fnmatch_translate_extended(p)))
     except (TypeError, re.error) as e:
       raise cls.InvalidPatternError(
         'In {spec}, "{field_value}" in {field_name} can\'t be compiled: {msg}'
         .format(field_name=field_name, field_value=p, spec=spec, msg=e))
   return compiled_patterns
Example #2
0
 def _compile_patterns(cls, patterns, field_name="Unknown", spec="Unknown"):
   compiled_patterns = []
   for p in patterns:
     try:
       compiled_patterns.append(re.compile(fnmatch_translate_extended(p)))
     except (TypeError, re.error) as e:
       raise cls.InvalidPatternError(
         'In {spec}, "{field_value}" in {field_name} can\'t be compiled: {msg}'
         .format(field_name=field_name, field_value=p, spec=spec, msg=e))
   return compiled_patterns
Example #3
0
 def compile_patterns(cls, patterns, field_name="Unknown", spec="Unknown"):
     logger.debug(f"patterns before removing trailing stars: {patterns}")
     # NB: `fnmatch_translate_extended()` will convert a '*' at the end into '([^/]+)' for some
     # reason -- it should be '('[^/]*)'. This should be fixed upstream in general, but in the case
     # where the star is at the end we can use this heuristic for now.
     patterns.extend(
         re.sub(r"\*$", "", p) for p in patterns if isinstance(p, str) and re.match(r".*\*$", p)
     )
     logger.debug(
         f"patterns with any trailing stars have a version with a star removed: {patterns}"
     )
     compiled_patterns = []
     for p in patterns:
         try:
             compiled_patterns.append(re.compile(fnmatch_translate_extended(p)))
         except (TypeError, re.error) as e:
             raise cls.InvalidPatternError(
                 'In {spec}, "{field_value}" in {field_name} can\'t be compiled: {msg}'.format(
                     field_name=field_name, field_value=p, spec=spec, msg=e
                 )
             )
     return compiled_patterns