[Python-checkins] gh-97850: Remove all known instances of module_repr() (#97876)

warsaw webhook-mailer at python.org
Wed Oct 5 14:42:35 EDT 2022


https://github.com/python/cpython/commit/5dc35991356306055ab2d85b886881ffd6577ae1
commit: 5dc35991356306055ab2d85b886881ffd6577ae1
branch: main
author: Barry Warsaw <barry at python.org>
committer: warsaw <barry at python.org>
date: 2022-10-05T11:42:26-07:00
summary:

gh-97850: Remove all known instances of module_repr() (#97876)

Remove all known instances of module_repr()

files:
A Misc/NEWS.d/next/Core and Builtins/2022-10-04-17-02-18.gh-issue-97850.E3QTRA.rst
M Doc/whatsnew/3.12.rst
M Lib/importlib/_bootstrap.py
M Lib/test/test_importlib/frozen/test_loader.py
M Lib/test/test_importlib/test_abc.py
M Lib/test/test_module.py

diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index 62ec2de2e78c..2e9515d036e7 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -426,6 +426,11 @@ Removed
   Validation.
   (Contributed by Victor Stinner in :gh:`94199`.)
 
+* Many previously deprecated cleanups in :mod:`importlib` have now been
+  completed:
+
+  * References to, and support for ``module_repr()`` has been eradicated.
+
 
 Porting to Python 3.12
 ======================
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 67989c500f21..5d3c9fe3fbd2 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -728,17 +728,6 @@ class BuiltinImporter:
 
     _ORIGIN = "built-in"
 
-    @staticmethod
-    def module_repr(module):
-        """Return repr for the module.
-
-        The method is deprecated.  The import machinery does the job itself.
-
-        """
-        _warnings.warn("BuiltinImporter.module_repr() is deprecated and "
-                       "slated for removal in Python 3.12", DeprecationWarning)
-        return f'<module {module.__name__!r} ({BuiltinImporter._ORIGIN})>'
-
     @classmethod
     def find_spec(cls, fullname, path=None, target=None):
         if path is not None:
@@ -808,17 +797,6 @@ class FrozenImporter:
 
     _ORIGIN = "frozen"
 
-    @staticmethod
-    def module_repr(m):
-        """Return repr for the module.
-
-        The method is deprecated.  The import machinery does the job itself.
-
-        """
-        _warnings.warn("FrozenImporter.module_repr() is deprecated and "
-                       "slated for removal in Python 3.12", DeprecationWarning)
-        return '<module {!r} ({})>'.format(m.__name__, FrozenImporter._ORIGIN)
-
     @classmethod
     def _fix_up_module(cls, module):
         spec = module.__spec__
diff --git a/Lib/test/test_importlib/frozen/test_loader.py b/Lib/test/test_importlib/frozen/test_loader.py
index 32f951cb1aca..da1569e3d068 100644
--- a/Lib/test/test_importlib/frozen/test_loader.py
+++ b/Lib/test/test_importlib/frozen/test_loader.py
@@ -103,7 +103,7 @@ def test_lacking_parent(self):
                              expected=value))
         self.assertEqual(output, 'Hello world!\n')
 
-    def test_module_repr_indirect(self):
+    def test_module_repr_indirect_through_spec(self):
         name = '__hello__'
         module, output = self.exec_module(name)
         self.assertEqual(repr(module),
@@ -190,13 +190,6 @@ def test_module_reuse(self):
         self.assertEqual(stdout.getvalue(),
                          'Hello world!\nHello world!\n')
 
-    def test_module_repr(self):
-        with fresh('__hello__', oldapi=True):
-            module = self.machinery.FrozenImporter.load_module('__hello__')
-            repr_str = self.machinery.FrozenImporter.module_repr(module)
-        self.assertEqual(repr_str,
-                         "<module '__hello__' (frozen)>")
-
     # No way to trigger an error in a frozen module.
     test_state_after_failure = None
 
diff --git a/Lib/test/test_importlib/test_abc.py b/Lib/test/test_importlib/test_abc.py
index c214209350a0..8641b6cc6830 100644
--- a/Lib/test/test_importlib/test_abc.py
+++ b/Lib/test/test_importlib/test_abc.py
@@ -687,9 +687,6 @@ def get_data(self, path):
     def get_filename(self, fullname):
         return self.path
 
-    def module_repr(self, module):
-        return '<module>'
-
 
 SPLIT_SOL = make_abc_subclasses(SourceOnlyLoader, 'SourceLoader')
 
diff --git a/Lib/test/test_module.py b/Lib/test/test_module.py
index 6c83d76c8e3c..70e4efea6935 100644
--- a/Lib/test/test_module.py
+++ b/Lib/test/test_module.py
@@ -239,7 +239,6 @@ def test_module_repr_with_full_loader(self):
             repr(m), "<module 'foo' (<class 'test.test_module.FullLoader'>)>")
 
     def test_module_repr_with_bare_loader_and_filename(self):
-        # Because the loader has no module_repr(), use the file name.
         m = ModuleType('foo')
         # Yes, a class not an instance.
         m.__loader__ = BareLoader
@@ -247,7 +246,6 @@ def test_module_repr_with_bare_loader_and_filename(self):
         self.assertEqual(repr(m), "<module 'foo' from '/tmp/foo.py'>")
 
     def test_module_repr_with_full_loader_and_filename(self):
-        # Even though the module has an __file__, use __loader__.module_repr()
         m = ModuleType('foo')
         # Yes, a class not an instance.
         m.__loader__ = FullLoader
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-10-04-17-02-18.gh-issue-97850.E3QTRA.rst b/Misc/NEWS.d/next/Core and Builtins/2022-10-04-17-02-18.gh-issue-97850.E3QTRA.rst
new file mode 100644
index 000000000000..f880d9663842
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2022-10-04-17-02-18.gh-issue-97850.E3QTRA.rst	
@@ -0,0 +1 @@
+Long deprecated, ``module_repr()`` should now be completely eradicated.



More information about the Python-checkins mailing list