mirror of https://github.com/python/cpython.git
#6630: allow customizing flags for compiling string.Template.idpattern.
This commit is contained in:
parent
1cec3e367c
commit
056cb93e7a
|
@ -710,6 +710,14 @@ to parse template strings. To do this, you can override these class attributes:
|
|||
appropriate). The default value is the regular expression
|
||||
``[_a-z][_a-z0-9]*``.
|
||||
|
||||
* *flags* -- The regular expression flags that will be applied when compiling
|
||||
the regular expression used for recognizing substitutions. The default value
|
||||
is ``re.IGNORECASE``. Note that ``re.VERBOSE`` will always be added to the
|
||||
flags, so custom *idpattern*\ s must follow conventions for verbose regular
|
||||
expressions.
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
Alternatively, you can provide the entire regular expression pattern by
|
||||
overriding the class attribute *pattern*. If you do this, the value must be a
|
||||
regular expression object with four named capturing groups. The capturing
|
||||
|
|
|
@ -81,7 +81,7 @@ def __init__(cls, name, bases, dct):
|
|||
'delim' : _re.escape(cls.delimiter),
|
||||
'id' : cls.idpattern,
|
||||
}
|
||||
cls.pattern = _re.compile(pattern, _re.IGNORECASE | _re.VERBOSE)
|
||||
cls.pattern = _re.compile(pattern, cls.flags | _re.VERBOSE)
|
||||
|
||||
|
||||
class Template(metaclass=_TemplateMetaclass):
|
||||
|
@ -89,6 +89,7 @@ class Template(metaclass=_TemplateMetaclass):
|
|||
|
||||
delimiter = '$'
|
||||
idpattern = r'[_a-z][_a-z0-9]*'
|
||||
flags = _re.IGNORECASE
|
||||
|
||||
def __init__(self, template):
|
||||
self.template = template
|
||||
|
|
Loading…
Reference in New Issue