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
|
appropriate). The default value is the regular expression
|
||||||
``[_a-z][_a-z0-9]*``.
|
``[_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
|
Alternatively, you can provide the entire regular expression pattern by
|
||||||
overriding the class attribute *pattern*. If you do this, the value must be a
|
overriding the class attribute *pattern*. If you do this, the value must be a
|
||||||
regular expression object with four named capturing groups. The capturing
|
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),
|
'delim' : _re.escape(cls.delimiter),
|
||||||
'id' : cls.idpattern,
|
'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):
|
class Template(metaclass=_TemplateMetaclass):
|
||||||
|
@ -89,6 +89,7 @@ class Template(metaclass=_TemplateMetaclass):
|
||||||
|
|
||||||
delimiter = '$'
|
delimiter = '$'
|
||||||
idpattern = r'[_a-z][_a-z0-9]*'
|
idpattern = r'[_a-z][_a-z0-9]*'
|
||||||
|
flags = _re.IGNORECASE
|
||||||
|
|
||||||
def __init__(self, template):
|
def __init__(self, template):
|
||||||
self.template = template
|
self.template = template
|
||||||
|
|
|
@ -475,6 +475,9 @@ C-API
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #6630: Allow customizing regex flags when subclassing the
|
||||||
|
string.Template class.
|
||||||
|
|
||||||
- Issue #9411: Allow specifying an encoding for config files in the
|
- Issue #9411: Allow specifying an encoding for config files in the
|
||||||
configparser module.
|
configparser module.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue