summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandrei kulakov <andrei.avk@gmail.com>2022-02-05 03:54:28 (GMT)
committerGitHub <noreply@github.com>2022-02-05 03:54:28 (GMT)
commitfea7290a0ecee09bbce571d4d10f5881b7ea3485 (patch)
tree463766aa964faf353c68e991c0567da5852d66dd
parentbf95ff91f2c1fc5a57190491f9ccdc63458b089e (diff)
downloadcpython-fea7290a0ecee09bbce571d4d10f5881b7ea3485.zip
cpython-fea7290a0ecee09bbce571d4d10f5881b7ea3485.tar.gz
cpython-fea7290a0ecee09bbce571d4d10f5881b7ea3485.tar.bz2
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>
-rw-r--r--Doc/library/re.rst16
-rw-r--r--Lib/re.py3
-rw-r--r--Misc/NEWS.d/next/Library/2021-12-27-18-28-44.bpo-31369.b9yM94.rst2
3 files changed, 20 insertions, 1 deletions
diff --git a/Doc/library/re.rst b/Doc/library/re.rst
index b12ce4b..8d62e3b 100644
--- a/Doc/library/re.rst
+++ b/Doc/library/re.rst
@@ -637,6 +637,11 @@ form.
programs that use only a few regular expressions at a time needn't worry
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
ASCII
@@ -710,6 +715,17 @@ form.
string and immediately before the newline (if any) at the end of the string.
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
DOTALL
diff --git a/Lib/re.py b/Lib/re.py
index a7ab9b3..e9a745d 100644
--- a/Lib/re.py
+++ b/Lib/re.py
@@ -137,7 +137,7 @@ __all__ = [
"findall", "finditer", "compile", "purge", "template", "escape",
"error", "Pattern", "Match", "A", "I", "L", "M", "S", "X", "U",
"ASCII", "IGNORECASE", "LOCALE", "MULTILINE", "DOTALL", "VERBOSE",
- "UNICODE",
+ "UNICODE", "NOFLAG", "RegexFlag",
]
__version__ = "2.2.1"
@@ -145,6 +145,7 @@ __version__ = "2.2.1"
@enum.global_enum
@enum._simple_enum(enum.IntFlag, boundary=enum.KEEP)
class RegexFlag:
+ NOFLAG = 0
ASCII = A = sre_compile.SRE_FLAG_ASCII # assume ascii "locale"
IGNORECASE = I = sre_compile.SRE_FLAG_IGNORECASE # ignore case
LOCALE = L = sre_compile.SRE_FLAG_LOCALE # assume current 8-bit locale
diff --git a/Misc/NEWS.d/next/Library/2021-12-27-18-28-44.bpo-31369.b9yM94.rst b/Misc/NEWS.d/next/Library/2021-12-27-18-28-44.bpo-31369.b9yM94.rst
new file mode 100644
index 0000000..2bb9e62
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-12-27-18-28-44.bpo-31369.b9yM94.rst
@@ -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.