23 lines
617 B
Python
23 lines
617 B
Python
import re
|
|
|
|
|
|
class LazyRegexCompiler:
|
|
"""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")
|