bpo-31369: include ``RegexFlag`` in ``re.__all__`` (GH-30279)

* added RegexFlag to re.__all__; added RegexFlag.NOFLAG

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
andrei kulakov 2022-02-04 22:54:28 -05:00 committed by GitHub
parent bf95ff91f2
commit fea7290a0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 1 deletions

View File

@ -637,6 +637,11 @@ form.
programs that use only a few regular expressions at a time needn't worry programs that use only a few regular expressions at a time needn't worry
about compiling regular expressions. about compiling regular expressions.
.. class:: RegexFlag
An :class:`enum.IntFlag` class containing the regex options listed below.
.. versionadded:: 3.11 - added to ``__all__``
.. data:: A .. data:: A
ASCII ASCII
@ -710,6 +715,17 @@ form.
string and immediately before the newline (if any) at the end of the string. string and immediately before the newline (if any) at the end of the string.
Corresponds to the inline flag ``(?m)``. Corresponds to the inline flag ``(?m)``.
.. data:: NOFLAG
Indicates no flag being applied, the value is ``0``. This flag may be used
as a default value for a function keyword argument or as a base value that
will be conditionally ORed with other flags. Example of use as a default
value::
def myfunc(text, flag=re.NOFLAG):
return re.match(text, flag)
.. versionadded:: 3.11
.. data:: S .. data:: S
DOTALL DOTALL

View File

@ -137,7 +137,7 @@
"findall", "finditer", "compile", "purge", "template", "escape", "findall", "finditer", "compile", "purge", "template", "escape",
"error", "Pattern", "Match", "A", "I", "L", "M", "S", "X", "U", "error", "Pattern", "Match", "A", "I", "L", "M", "S", "X", "U",
"ASCII", "IGNORECASE", "LOCALE", "MULTILINE", "DOTALL", "VERBOSE", "ASCII", "IGNORECASE", "LOCALE", "MULTILINE", "DOTALL", "VERBOSE",
"UNICODE", "UNICODE", "NOFLAG", "RegexFlag",
] ]
__version__ = "2.2.1" __version__ = "2.2.1"
@ -145,6 +145,7 @@
@enum.global_enum @enum.global_enum
@enum._simple_enum(enum.IntFlag, boundary=enum.KEEP) @enum._simple_enum(enum.IntFlag, boundary=enum.KEEP)
class RegexFlag: class RegexFlag:
NOFLAG = 0
ASCII = A = sre_compile.SRE_FLAG_ASCII # assume ascii "locale" ASCII = A = sre_compile.SRE_FLAG_ASCII # assume ascii "locale"
IGNORECASE = I = sre_compile.SRE_FLAG_IGNORECASE # ignore case IGNORECASE = I = sre_compile.SRE_FLAG_IGNORECASE # ignore case
LOCALE = L = sre_compile.SRE_FLAG_LOCALE # assume current 8-bit locale LOCALE = L = sre_compile.SRE_FLAG_LOCALE # assume current 8-bit locale

View File

@ -0,0 +1,2 @@
Add :class:`~re.RegexFlag` to ``re.__all__`` and documented it. Add
:data:`~re.RegexFlag.NOFLAG` to indicate no flags being set.