]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-31369: include ``RegexFlag`` in ``re.__all__`` (GH-30279)
authorandrei kulakov <andrei.avk@gmail.com>
Sat, 5 Feb 2022 03:54:28 +0000 (22:54 -0500)
committerGitHub <noreply@github.com>
Sat, 5 Feb 2022 03:54:28 +0000 (19:54 -0800)
* added RegexFlag to re.__all__; added RegexFlag.NOFLAG

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Doc/library/re.rst
Lib/re.py
Misc/NEWS.d/next/Library/2021-12-27-18-28-44.bpo-31369.b9yM94.rst [new file with mode: 0644]

index b12ce4b9744f944b4347bc74c03f6243c19a222f..8d62e3bf4d8d83474bb2502aff9152d7a94bc5a6 100644 (file)
@@ -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
index a7ab9b3706748ac321bdeebc2c4862a503d0d77e..e9a745dc581a69af993eb0681f686b086c6526aa 100644 (file)
--- 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 (file)
index 0000000..2bb9e62
--- /dev/null
@@ -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.