]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-105456: Remove 3 deprecated `sre_*` modules (#135994)
authorStan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Tue, 1 Jul 2025 15:31:07 +0000 (16:31 +0100)
committerGitHub <noreply@github.com>
Tue, 1 Jul 2025 15:31:07 +0000 (17:31 +0200)
Doc/deprecations/pending-removal-in-3.15.rst
Doc/deprecations/pending-removal-in-future.rst
Doc/whatsnew/3.15.rst
Lib/sre_compile.py [deleted file]
Lib/sre_constants.py [deleted file]
Lib/sre_parse.py [deleted file]
Lib/test/test_pyclbr.py
Lib/test/test_re.py
Misc/NEWS.d/next/Library/2025-06-26-17-19-36.gh-issue-105456.eR9oHB.rst [new file with mode: 0644]
Python/stdlib_module_names.h

index a76d06cce1278aad7108cb657f48ea6dc941664f..c5ca599bb04a6f429a7801bf5c644a0c7689ea77 100644 (file)
@@ -97,6 +97,8 @@ Pending removal in Python 3.15
     After eight years in the :mod:`typing` module,
     it has yet to be supported by any major type checker.
 
+* :mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules.
+
 * :mod:`wave`:
 
   * The ``getmark()``, ``setmark()`` and ``getmarkers()`` methods of
index 4c4a368baca9557e695f24ff6d14b3ce14ce7740..edb672ed8ad9a2952572b9a7e6278174788df513 100644 (file)
@@ -89,8 +89,6 @@ although there is currently no date scheduled for their removal.
   underscore.
   (Contributed by Serhiy Storchaka in :gh:`91760`.)
 
-* :mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules.
-
 * :mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in
   Python 3.12; use the *onexc* parameter instead.
 
index fb3f631279875365b0703f4d6ab79e989373290e..efc5777db884c1b0d101f375a57b263524a1cc7e 100644 (file)
@@ -252,6 +252,13 @@ platform
   (Contributed by Alexey Makridenko in :gh:`133604`.)
 
 
+sre_*
+-----
+
+* Removed :mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules.
+  (Contributed by Stan Ulbrych in :gh:`135994`.)
+
+
 sysconfig
 ---------
 
diff --git a/Lib/sre_compile.py b/Lib/sre_compile.py
deleted file mode 100644 (file)
index f9da61e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-import warnings
-warnings.warn(f"module {__name__!r} is deprecated",
-              DeprecationWarning,
-              stacklevel=2)
-
-from re import _compiler as _
-globals().update({k: v for k, v in vars(_).items() if k[:2] != '__'})
diff --git a/Lib/sre_constants.py b/Lib/sre_constants.py
deleted file mode 100644 (file)
index fa09d04..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-import warnings
-warnings.warn(f"module {__name__!r} is deprecated",
-              DeprecationWarning,
-              stacklevel=2)
-
-from re import _constants as _
-globals().update({k: v for k, v in vars(_).items() if k[:2] != '__'})
diff --git a/Lib/sre_parse.py b/Lib/sre_parse.py
deleted file mode 100644 (file)
index 25a3f55..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-import warnings
-warnings.warn(f"module {__name__!r} is deprecated",
-              DeprecationWarning,
-              stacklevel=2)
-
-from re import _parser as _
-globals().update({k: v for k, v in vars(_).items() if k[:2] != '__'})
index 3e7b2cd0dc99126401137fa70aa36127a4f60427..bce68e6cd7a57e1f78e4fdfd69ebcb0e35adf142 100644 (file)
@@ -11,7 +11,6 @@ from types import FunctionType, MethodType, BuiltinFunctionType
 import pyclbr
 from unittest import TestCase, main as unittest_main
 from test.test_importlib import util as test_importlib_util
-import warnings
 
 
 StaticMethodType = type(staticmethod(lambda: None))
@@ -246,9 +245,6 @@ class PyclbrTest(TestCase):
         # These were once some of the longest modules.
         cm('random', ignore=('Random',))  # from _random import Random as CoreGenerator
         cm('pickle', ignore=('partial', 'PickleBuffer'))
-        with warnings.catch_warnings():
-            warnings.simplefilter('ignore', DeprecationWarning)
-            cm('sre_parse', ignore=('dump', 'groups', 'pos')) # from sre_constants import *; property
         with temporary_main_spec():
             cm(
                 'pdb',
index e9128ac1d9762d4158fddd1b6b02a7192156814f..993652d2e882ccd7d3b6fee254cbe4d89a91c355 100644 (file)
@@ -5,7 +5,6 @@ from test.support import (gc_collect, bigmemtest, _2G,
 import locale
 import re
 import string
-import sys
 import unittest
 import warnings
 from re import Scanner
@@ -2927,33 +2926,6 @@ class ImplementationTest(unittest.TestCase):
         pat = re.compile("")
         check_disallow_instantiation(self, type(pat.scanner("")))
 
-    def test_deprecated_modules(self):
-        deprecated = {
-            'sre_compile': ['compile', 'error',
-                            'SRE_FLAG_IGNORECASE', 'SUBPATTERN',
-                            '_compile_info'],
-            'sre_constants': ['error', 'SRE_FLAG_IGNORECASE', 'SUBPATTERN',
-                              '_NamedIntConstant'],
-            'sre_parse': ['SubPattern', 'parse',
-                          'SRE_FLAG_IGNORECASE', 'SUBPATTERN',
-                          '_parse_sub'],
-        }
-        for name in deprecated:
-            with self.subTest(module=name):
-                sys.modules.pop(name, None)
-                with self.assertWarns(DeprecationWarning) as w:
-                    __import__(name)
-                self.assertEqual(str(w.warning),
-                                 f"module {name!r} is deprecated")
-                self.assertEqual(w.filename, __file__)
-                self.assertIn(name, sys.modules)
-                mod = sys.modules[name]
-                self.assertEqual(mod.__name__, name)
-                self.assertEqual(mod.__package__, '')
-                for attr in deprecated[name]:
-                    self.assertHasAttr(mod, attr)
-                del sys.modules[name]
-
     @cpython_only
     def test_case_helpers(self):
         import _sre
diff --git a/Misc/NEWS.d/next/Library/2025-06-26-17-19-36.gh-issue-105456.eR9oHB.rst b/Misc/NEWS.d/next/Library/2025-06-26-17-19-36.gh-issue-105456.eR9oHB.rst
new file mode 100644 (file)
index 0000000..772403a
--- /dev/null
@@ -0,0 +1,2 @@
+Removed :mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse`
+modules.
index 56e349a544c07971287625a740eb9f5dd566bdc6..63e4599c31efc3781905dd04835d0b93a1c2f464 100644 (file)
@@ -245,9 +245,6 @@ static const char* _Py_stdlib_module_names[] = {
 "socket",
 "socketserver",
 "sqlite3",
-"sre_compile",
-"sre_constants",
-"sre_parse",
 "ssl",
 "stat",
 "statistics",