12345678910111213141516171819202122 |
- import re
- class LazyRegexCompiler(object):
- """Descriptor to allow lazy compilation of regex"""
- def __init__(self, pattern, flags=0):
- self._pattern = pattern
- self._flags = flags
- self._compiled_regex = None
- @property
- def compiled_regex(self):
- if self._compiled_regex is None:
- self._compiled_regex = re.compile(self._pattern, self._flags)
- return self._compiled_regex
- def __get__(self, instance, owner):
- return self.compiled_regex
- def __set__(self, instance, value):
- raise AttributeError("Can not set attribute LazyRegexCompiler")
|