diff --git a/Doc/deprecations/pending-removal-in-3.15.rst b/Doc/deprecations/pending-removal-in-3.15.rst index e269681593c7c6..92297e1518004d 100644 --- a/Doc/deprecations/pending-removal-in-3.15.rst +++ b/Doc/deprecations/pending-removal-in-3.15.rst @@ -96,3 +96,9 @@ Pending removal in Python 3.15 and :meth:`~wave.Wave_read.getmarkers` methods of the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been deprecated since Python 3.13. + +* :mod:`zipimport`: + + * :meth:`~zipimport.zipimporter.load_module` has been deprecated since + Python 3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. + (Contributed by Jiahao Li in :gh:`125746`.) diff --git a/Doc/deprecations/pending-removal-in-future.rst b/Doc/deprecations/pending-removal-in-future.rst index d8d7ad8c783158..42dce518717a85 100644 --- a/Doc/deprecations/pending-removal-in-future.rst +++ b/Doc/deprecations/pending-removal-in-future.rst @@ -151,6 +151,3 @@ although there is currently no date scheduled for their removal. :class:`~xml.etree.ElementTree.Element` is deprecated. In a future release it will always return ``True``. Prefer explicit ``len(elem)`` or ``elem is not None`` tests instead. - -* :meth:`zipimport.zipimporter.load_module` is deprecated: - use :meth:`~zipimport.zipimporter.exec_module` instead. diff --git a/Doc/library/zipimport.rst b/Doc/library/zipimport.rst index 9353a45bdcecba..cd76f29a556939 100644 --- a/Doc/library/zipimport.rst +++ b/Doc/library/zipimport.rst @@ -148,7 +148,7 @@ zipimporter Objects qualified (dotted) module name. Returns the imported module on success, raises :exc:`ZipImportError` on failure. - .. deprecated:: 3.10 + .. deprecated-removed:: 3.10 3.15 Use :meth:`exec_module` instead. diff --git a/Lib/zipimport.py b/Lib/zipimport.py index e5192c4d074c4b..444c9dd11d8672 100644 --- a/Lib/zipimport.py +++ b/Lib/zipimport.py @@ -20,7 +20,6 @@ import marshal # for loads import sys # for modules import time # for mktime -import _warnings # For warn() __all__ = ['ZipImportError', 'zipimporter'] @@ -221,9 +220,11 @@ def load_module(self, fullname): Deprecated since Python 3.10. Use exec_module() instead. """ - msg = ("zipimport.zipimporter.load_module() is deprecated and slated for " - "removal in Python 3.12; use exec_module() instead") - _warnings.warn(msg, DeprecationWarning) + import warnings + warnings._deprecated("zipimport.zipimporter.load_module", + f"{warnings._DEPRECATED_MSG}; " + "use zipimport.zipimporter.exec_module() instead", + remove=(3, 15)) code, ispackage, modpath = _get_module_code(self, fullname) mod = sys.modules.get(fullname) if mod is None or not isinstance(mod, _module_type): diff --git a/Misc/NEWS.d/next/Library/2024-10-20-13-01-05.gh-issue-125746.wDLTay.rst b/Misc/NEWS.d/next/Library/2024-10-20-13-01-05.gh-issue-125746.wDLTay.rst new file mode 100644 index 00000000000000..387d793fd209d9 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2024-10-20-13-01-05.gh-issue-125746.wDLTay.rst @@ -0,0 +1,2 @@ +Delay deprecated :meth:`zipimport.zipimporter.load_module` removal +time to 3.15. Use :meth:`zipimport.zipimporter.exec_module` instead.