Kaydet (Commit) 056cb93e authored tarafından Georg Brandl's avatar Georg Brandl

#6630: allow customizing flags for compiling string.Template.idpattern.

üst 1cec3e36
......@@ -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 @@ class _TemplateMetaclass(type):
'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
......
......@@ -475,6 +475,9 @@ C-API
Library
-------
- Issue #6630: Allow customizing regex flags when subclassing the
string.Template class.
- Issue #9411: Allow specifying an encoding for config files in the
configparser module.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment