summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2023-05-03 11:55:22 (GMT)
committerGitHub <noreply@github.com>2023-05-03 11:55:22 (GMT)
commit326997829d02458246dfd5b6d03297e2418bde52 (patch)
tree05b94e8dbb81f6b7a8d9054bd773c3cf24e0797e /Doc/whatsnew
parentbcea36f8db9ad4fd542b38997e065987e829cb9f (diff)
downloadcpython-326997829d02458246dfd5b6d03297e2418bde52.zip
cpython-326997829d02458246dfd5b6d03297e2418bde52.tar.gz
cpython-326997829d02458246dfd5b6d03297e2418bde52.tar.bz2
gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059)
* Remove deprecated classes from pkgutil * Remove some other PEP 302 obsolescence * Use find_spec instead of load_module * Remove more tests of PEP 302 obsolete APIs * Remove another bunch of tests using obsolete load_modules() * Remove deleted names from __all__ * Remove obsolete footnote * imp is removed * Remove `imp` from generated stdlib names * What's new and blurb * Update zipimport documentation for the removed methods * Fix some Windows tests * Remove any test (or part of a test) that references `find_module()`. * Use assertIsNone() / assertIsNotNone() consistently. * Update Doc/reference/import.rst * We don't need pkgutil._get_spec() any more either * test.test_importlib.fixtures.NullFinder * ...BadLoaderFinder.find_module * ...test_api.InvalidatingNullFinder.find_module * ...test.test_zipimport test of z.find_module * Suppress cross-references to find_loader and find_module * Suppress cross-references to Finder * Suppress cross-references to pkgutil.ImpImporter and pkgutil.ImpLoader --------- Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net> Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
Diffstat (limited to 'Doc/whatsnew')
-rw-r--r--Doc/whatsnew/2.3.rst2
-rw-r--r--Doc/whatsnew/3.10.rst38
-rw-r--r--Doc/whatsnew/3.11.rst14
-rw-r--r--Doc/whatsnew/3.12.rst16
-rw-r--r--Doc/whatsnew/3.3.rst4
-rw-r--r--Doc/whatsnew/3.4.rst18
-rw-r--r--Doc/whatsnew/3.7.rst4
7 files changed, 51 insertions, 45 deletions
diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst
index af489d7..4eb864f 100644
--- a/Doc/whatsnew/2.3.rst
+++ b/Doc/whatsnew/2.3.rst
@@ -728,7 +728,7 @@ module:
Importer objects must have a single method, ``find_module(fullname,
path=None)``. *fullname* will be a module or package name, e.g. ``string`` or
-``distutils.core``. :meth:`find_module` must return a loader object that has a
+``distutils.core``. :meth:`!find_module` must return a loader object that has a
single method, ``load_module(fullname)``, that creates and returns the
corresponding module object.
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index f6a48ed..44c8fa1 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -1608,7 +1608,7 @@ Deprecated
* Starting in this release, there will be a concerted effort to begin
cleaning up old import semantics that were kept for Python 2.7
compatibility. Specifically,
- :meth:`~importlib.abc.PathEntryFinder.find_loader`/:meth:`~importlib.abc.Finder.find_module`
+ :meth:`!find_loader`/:meth:`!find_module`
(superseded by :meth:`~importlib.abc.Finder.find_spec`),
:meth:`~importlib.abc.Loader.load_module`
(superseded by :meth:`~importlib.abc.Loader.exec_module`),
@@ -1645,8 +1645,8 @@ Deprecated
:meth:`~importlib.abc.Loader.exec_module` is preferred.
(Contributed by Brett Cannon in :issue:`26131`.)
-* The use of :meth:`importlib.abc.MetaPathFinder.find_module` and
- :meth:`importlib.abc.PathEntryFinder.find_module` by the import system now
+* The use of :meth:`!importlib.abc.MetaPathFinder.find_module` and
+ :meth:`!importlib.abc.PathEntryFinder.find_module` by the import system now
trigger an :exc:`ImportWarning` as
:meth:`importlib.abc.MetaPathFinder.find_spec` and
:meth:`importlib.abc.PathEntryFinder.find_spec`
@@ -1654,40 +1654,40 @@ Deprecated
:func:`importlib.util.spec_from_loader` to help in porting.
(Contributed by Brett Cannon in :issue:`42134`.)
-* The use of :meth:`importlib.abc.PathEntryFinder.find_loader` by the import
+* The use of :meth:`!importlib.abc.PathEntryFinder.find_loader` by the import
system now triggers an :exc:`ImportWarning` as
:meth:`importlib.abc.PathEntryFinder.find_spec` is preferred. You can use
:func:`importlib.util.spec_from_loader` to help in porting.
(Contributed by Brett Cannon in :issue:`43672`.)
* The various implementations of
- :meth:`importlib.abc.MetaPathFinder.find_module` (
- :meth:`importlib.machinery.BuiltinImporter.find_module`,
- :meth:`importlib.machinery.FrozenImporter.find_module`,
- :meth:`importlib.machinery.WindowsRegistryFinder.find_module`,
- :meth:`importlib.machinery.PathFinder.find_module`,
- :meth:`importlib.abc.MetaPathFinder.find_module` ),
- :meth:`importlib.abc.PathEntryFinder.find_module` (
- :meth:`importlib.machinery.FileFinder.find_module` ), and
- :meth:`importlib.abc.PathEntryFinder.find_loader` (
- :meth:`importlib.machinery.FileFinder.find_loader` )
+ :meth:`!importlib.abc.MetaPathFinder.find_module` (
+ :meth:`!importlib.machinery.BuiltinImporter.find_module`,
+ :meth:`!importlib.machinery.FrozenImporter.find_module`,
+ :meth:`!importlib.machinery.WindowsRegistryFinder.find_module`,
+ :meth:`!importlib.machinery.PathFinder.find_module`,
+ :meth:`!importlib.abc.MetaPathFinder.find_module` ),
+ :meth:`!importlib.abc.PathEntryFinder.find_module` (
+ :meth:`!importlib.machinery.FileFinder.find_module` ), and
+ :meth:`!importlib.abc.PathEntryFinder.find_loader` (
+ :meth:`!importlib.machinery.FileFinder.find_loader` )
now raise :exc:`DeprecationWarning` and are slated for removal in
Python 3.12 (previously they were documented as deprecated in Python 3.4).
(Contributed by Brett Cannon in :issue:`42135`.)
-* :class:`importlib.abc.Finder` is deprecated (including its sole method,
- :meth:`~importlib.abc.Finder.find_module`). Both
+* :class:`!importlib.abc.Finder` is deprecated (including its sole method,
+ :meth:`!find_module`). Both
:class:`importlib.abc.MetaPathFinder` and :class:`importlib.abc.PathEntryFinder`
no longer inherit from the class. Users should inherit from one of these two
classes as appropriate instead.
(Contributed by Brett Cannon in :issue:`42135`.)
-* The deprecations of :mod:`imp`, :func:`importlib.find_loader`,
+* The deprecations of :mod:`imp`, :func:`!importlib.find_loader`,
:func:`importlib.util.set_package_wrapper`,
:func:`importlib.util.set_loader_wrapper`,
:func:`importlib.util.module_for_loader`,
- :class:`pkgutil.ImpImporter`, and
- :class:`pkgutil.ImpLoader` have all been updated to list Python 3.12 as the
+ :class:`!pkgutil.ImpImporter`, and
+ :class:`!pkgutil.ImpLoader` have all been updated to list Python 3.12 as the
slated version of removal (they began raising :exc:`DeprecationWarning` in
previous versions of Python).
(Contributed by Brett Cannon in :issue:`43720`.)
diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst
index 6b591d5..918a682 100644
--- a/Doc/whatsnew/3.11.rst
+++ b/Doc/whatsnew/3.11.rst
@@ -1876,24 +1876,24 @@ C APIs pending removal are
* The :class:`typing.io <typing.IO>` namespace
* The :class:`typing.re <typing.Pattern>` namespace
* :func:`!cgi.log`
-* :func:`importlib.find_loader`
+* :func:`!importlib.find_loader`
* :meth:`importlib.abc.Loader.module_repr`
-* :meth:`importlib.abc.MetaPathFinder.find_module`
-* :meth:`importlib.abc.PathEntryFinder.find_loader`
-* :meth:`importlib.abc.PathEntryFinder.find_module`
+* :meth:`!importlib.abc.MetaPathFinder.find_module`
+* :meth:`!importlib.abc.PathEntryFinder.find_loader`
+* :meth:`!importlib.abc.PathEntryFinder.find_module`
* :meth:`!importlib.machinery.BuiltinImporter.find_module`
* :meth:`!importlib.machinery.BuiltinLoader.module_repr`
* :meth:`!importlib.machinery.FileFinder.find_loader`
* :meth:`!importlib.machinery.FileFinder.find_module`
* :meth:`!importlib.machinery.FrozenImporter.find_module`
* :meth:`!importlib.machinery.FrozenLoader.module_repr`
-* :meth:`importlib.machinery.PathFinder.find_module`
+* :meth:`!importlib.machinery.PathFinder.find_module`
* :meth:`!importlib.machinery.WindowsRegistryFinder.find_module`
* :func:`importlib.util.module_for_loader`
* :func:`!importlib.util.set_loader_wrapper`
* :func:`!importlib.util.set_package_wrapper`
-* :class:`pkgutil.ImpImporter`
-* :class:`pkgutil.ImpLoader`
+* :class:`!pkgutil.ImpImporter`
+* :class:`!pkgutil.ImpLoader`
* :meth:`pathlib.Path.link_to`
* :func:`!sqlite3.enable_shared_cache`
* :func:`!sqlite3.OptimizedUnicode`
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index 5f8a1f0..1139bb8 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -983,14 +983,20 @@ Removed
* Many previously deprecated cleanups in :mod:`importlib` have now been
completed:
- * References to, and support for ``module_repr()`` has been eradicated.
+ * References to, and support for ``module_repr()`` has been removed.
(Contributed by Barry Warsaw in :gh:`97850`.)
-* ``importlib.util.set_package`` has been removed.
- (Contributed by Brett Cannon in :gh:`65961`.)
+ * ``importlib.util.set_package`` has been removed. (Contributed by Brett
+ Cannon in :gh:`65961`.)
+
+ * Support for ``find_loader()`` and ``find_module()`` APIs have been
+ removed. (Contributed by Barry Warsaw in :gh:`98040`.)
+
+ * ``importlib.abc.Finder``, ``pkg.ImpImporter``, and ``pkg.ImpLoader`` have
+ been removed. (Contributed by Barry Warsaw in :gh:`98040`.)
-* The ``imp`` module has been removed. (Contributed by Barry Warsaw in
- :gh:`98040`.)
+ * The ``imp`` module has been removed. (Contributed by Barry Warsaw in
+ :gh:`98040`.)
* Removed the ``suspicious`` rule from the documentation Makefile, and
removed ``Doc/tools/rstlint.py``, both in favor of `sphinx-lint
diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst
index 5b6c3dc..df1f2ab 100644
--- a/Doc/whatsnew/3.3.rst
+++ b/Doc/whatsnew/3.3.rst
@@ -714,7 +714,7 @@ to properly delineate between :term:`meta path finders <meta path finder>`
and :term:`path entry finders <path entry finder>` by introducing
:class:`importlib.abc.MetaPathFinder` and
:class:`importlib.abc.PathEntryFinder`, respectively. The old ABC of
-:class:`importlib.abc.Finder` is now only provided for backwards-compatibility
+:class:`!importlib.abc.Finder` is now only provided for backwards-compatibility
and does not enforce any method requirements.
In terms of finders, :class:`importlib.machinery.FileFinder` exposes the
@@ -2390,7 +2390,7 @@ Porting Python code
:attr:`sys.path_importer_cache` where it represents the use of implicit
finders, but semantically it should not change anything.
-* :class:`importlib.abc.Finder` no longer specifies a ``find_module()`` abstract
+* :class:`!importlib.abc.Finder` no longer specifies a ``find_module()`` abstract
method that must be implemented. If you were relying on subclasses to
implement that method, make sure to check for the method's existence first.
You will probably want to check for ``find_loader()`` first, though, in the
diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
index b7bb505..53f78e3 100644
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -2077,19 +2077,19 @@ Deprecations in the Python API
------------------------------
* As mentioned in :ref:`whatsnew-pep-451`, a number of :mod:`importlib`
- methods and functions are deprecated: :meth:`importlib.find_loader` is
+ methods and functions are deprecated: :meth:`!importlib.find_loader` is
replaced by :func:`importlib.util.find_spec`;
- :meth:`importlib.machinery.PathFinder.find_module` is replaced by
+ :meth:`!importlib.machinery.PathFinder.find_module` is replaced by
:meth:`importlib.machinery.PathFinder.find_spec`;
- :meth:`importlib.abc.MetaPathFinder.find_module` is replaced by
+ :meth:`!importlib.abc.MetaPathFinder.find_module` is replaced by
:meth:`importlib.abc.MetaPathFinder.find_spec`;
- :meth:`importlib.abc.PathEntryFinder.find_loader` and
- :meth:`~importlib.abc.PathEntryFinder.find_module` are replaced by
+ :meth:`!importlib.abc.PathEntryFinder.find_loader` and
+ :meth:`!find_module` are replaced by
:meth:`importlib.abc.PathEntryFinder.find_spec`; all of the ``xxxLoader`` ABC
- ``load_module`` methods (:meth:`importlib.abc.Loader.load_module`,
- :meth:`importlib.abc.InspectLoader.load_module`,
- :meth:`importlib.abc.FileLoader.load_module`,
- :meth:`importlib.abc.SourceLoader.load_module`) should no longer be
+ ``load_module`` methods (:meth:`!importlib.abc.Loader.load_module`,
+ :meth:`!importlib.abc.InspectLoader.load_module`,
+ :meth:`!importlib.abc.FileLoader.load_module`,
+ :meth:`!importlib.abc.SourceLoader.load_module`) should no longer be
implemented, instead loaders should implement an
``exec_module`` method
(:meth:`importlib.abc.Loader.exec_module`,
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst
index df3b636..28f2283 100644
--- a/Doc/whatsnew/3.7.rst
+++ b/Doc/whatsnew/3.7.rst
@@ -2004,11 +2004,11 @@ importlib
---------
Methods
-:meth:`MetaPathFinder.find_module() <importlib.abc.MetaPathFinder.find_module>`
+:meth:`MetaPathFinder.find_module() <!importlib.abc.MetaPathFinder.find_module>`
(replaced by
:meth:`MetaPathFinder.find_spec() <importlib.abc.MetaPathFinder.find_spec>`)
and
-:meth:`PathEntryFinder.find_loader() <importlib.abc.PathEntryFinder.find_loader>`
+:meth:`PathEntryFinder.find_loader() <!importlib.abc.PathEntryFinder.find_loader>`
(replaced by
:meth:`PathEntryFinder.find_spec() <importlib.abc.PathEntryFinder.find_spec>`)
both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`.