MCPcopy Create free account
hub / github.com/davidblewett/rure-python / __init__

Method __init__

rure/regex.py:34–65  ·  view source on GitHub ↗
(self, pattern, flags=0, **options)

Source from the content-addressed store, hash-verified

32class RegexObject(object):
33
34 def __init__(self, pattern, flags=0, **options):
35 if isinstance(pattern, bytes):
36 raise TypeError("'rure.regex.RegexObject' must be instantiated with"
37 " a unicode object as first argument.")
38
39 self.flags = flags
40 self.pattern = pattern.encode('utf8')
41 self.options = options
42 self.submatches = options.pop('submatches', False)
43
44 self.rure_flags = DEFAULT_FLAGS
45 for flag, rure_flag in FLAG_MAP.items():
46 if flags & flag:
47 if rure_flag is None:
48 msg = u"rure doesn't support the flag '%s'"
49 warnings.warn(msg % FLAG_NAMES[flag], SyntaxWarning)
50 else:
51 self.rure_flags = self.rure_flags | rure_flag
52
53 self._rure = Rure(self.pattern, flags=self.rure_flags, **self.options)
54 self._match_rure = None
55 self._match_rure_pos = None
56
57 names = [name for name in self.capture_names()]
58 # This can be greater than len(self.groupindex) due to
59 # unnamed groupes
60 self.groups = len(names)
61 self.groupindex = {
62 name: pos
63 for pos, name in enumerate(names)
64 if name is not None
65 }
66
67 def capture_names(self):
68 return self._rure.capture_names()

Callers

nothing calls this directly

Calls 3

capture_namesMethod · 0.95
RureClass · 0.90
popMethod · 0.45

Tested by

no test coverage detected