diff options
author | Barry Warsaw <barry@python.org> | 2022-10-05 18:42:26 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-05 18:42:26 (GMT) |
commit | 5dc35991356306055ab2d85b886881ffd6577ae1 (patch) | |
tree | 93e10065cca0d56046fca3fdb7c7a68926b9000b | |
parent | 815008a3a54a07c8523f9db35492b1750e104900 (diff) | |
download | cpython-5dc35991356306055ab2d85b886881ffd6577ae1.zip cpython-5dc35991356306055ab2d85b886881ffd6577ae1.tar.gz cpython-5dc35991356306055ab2d85b886881ffd6577ae1.tar.bz2 |
gh-97850: Remove all known instances of module_repr() (#97876)
Remove all known instances of module_repr()
-rw-r--r-- | Doc/whatsnew/3.12.rst | 5 | ||||
-rw-r--r-- | Lib/importlib/_bootstrap.py | 22 | ||||
-rw-r--r-- | Lib/test/test_importlib/frozen/test_loader.py | 9 | ||||
-rw-r--r-- | Lib/test/test_importlib/test_abc.py | 3 | ||||
-rw-r--r-- | Lib/test/test_module.py | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Core and Builtins/2022-10-04-17-02-18.gh-issue-97850.E3QTRA.rst | 1 |
6 files changed, 7 insertions, 35 deletions
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 62ec2de..2e9515d 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 67989c5..5d3c9fe 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 32f951c..da1569e 100644 --- a/Lib/test/test_importlib/frozen/test_loader.py +++ b/Lib/test/test_importlib/frozen/test_loader.py @@ -103,7 +103,7 @@ class ExecModuleTests(abc.LoaderTests): 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 @@ class LoaderTests(abc.LoaderTests): 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 c214209..8641b6c 100644 --- a/Lib/test/test_importlib/test_abc.py +++ b/Lib/test/test_importlib/test_abc.py @@ -687,9 +687,6 @@ class SourceOnlyLoader: 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 6c83d76..70e4efe 100644 --- a/Lib/test/test_module.py +++ b/Lib/test/test_module.py @@ -239,7 +239,6 @@ a = A(destroyed)""" 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 @@ a = A(destroyed)""" 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 0000000..f880d96 --- /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. |