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

This commit is contained in:
Georg Brandl 2010-07-29 17:16:10 +00:00
parent 1cec3e367c
commit 056cb93e7a
3 changed files with 13 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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.