]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] GH-137426: Remove code deprecation of `importlib.abc.ResourceLoader` (GH-13756...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 12 Aug 2025 12:47:28 +0000 (14:47 +0200)
committerGitHub <noreply@github.com>
Tue, 12 Aug 2025 12:47:28 +0000 (15:47 +0300)
Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Doc/library/importlib.rst
Lib/importlib/abc.py
Lib/test/test_importlib/test_abc.py
Misc/NEWS.d/next/Library/2025-08-08-15-00-38.gh-issue-137426.lW-Rk2.rst [new file with mode: 0644]

index 4f374be778d6b32b98ad761847d7a17446092d63..ddf503af82d988afb6c5510707991ae13fa9bcec 100644 (file)
@@ -393,6 +393,8 @@ ABC hierarchy::
     .. deprecated:: 3.7
        This ABC is deprecated in favour of supporting resource loading
        through :class:`importlib.resources.abc.TraversableResources`.
+       This class exists for backwards compatibility only with other ABCs in
+       this module.
 
     .. method:: get_data(path)
        :abstractmethod:
index 29f01f77eff4a0d0212367f5b05cc7b8b4380549..1e47495f65fa02f9f31860d673992338d09bed7a 100644 (file)
@@ -64,20 +64,14 @@ _register(PathEntryFinder, machinery.FileFinder)
 class ResourceLoader(Loader):
 
     """Abstract base class for loaders which can return data from their
-    back-end storage.
+    back-end storage to facilitate reading data to perform an import.
 
     This ABC represents one of the optional protocols specified by PEP 302.
 
-    """
-
-    def __init__(self):
-        import warnings
-        warnings.warn('importlib.abc.ResourceLoader is deprecated in '
-                      'favour of supporting resource loading through '
-                      'importlib.resources.abc.TraversableResources.',
-                      DeprecationWarning, stacklevel=2)
-        super().__init__()
+    For directly loading resources, use TraversableResources instead. This class
+    primarily exists for backwards compatibility with other ABCs in this module.
 
+    """
 
     @abc.abstractmethod
     def get_data(self, path):
index 070920d0da7e19011174539f7bf73ad443588dcd..dd943210ffca3cf24d9a47673b8a330a6ce1bce7 100644 (file)
@@ -224,15 +224,7 @@ class ResourceLoaderDefaultsTests(ABCTestHarness):
     SPLIT = make_abc_subclasses(ResourceLoader)
 
     def test_get_data(self):
-        with (
-            self.assertRaises(IOError),
-            self.assertWarnsRegex(
-                DeprecationWarning,
-                r"importlib\.abc\.ResourceLoader is deprecated in favour of "
-                r"supporting resource loading through importlib\.resources"
-                r"\.abc\.TraversableResources.",
-            ),
-        ):
+        with self.assertRaises(IOError):
             self.ins.get_data('/some/path')
 
 
@@ -936,13 +928,8 @@ class SourceLoaderDeprecationWarningsTests(unittest.TestCase):
 
             def path_stats(self, path):
                 return {'mtime': 1}
-        with self.assertWarnsRegex(
-            DeprecationWarning,
-            r"importlib\.abc\.ResourceLoader is deprecated in favour of "
-            r"supporting resource loading through importlib\.resources"
-            r"\.abc\.TraversableResources.",
-        ):
-            loader = DummySourceLoader()
+
+        loader = DummySourceLoader()
 
         with self.assertWarnsRegex(
             DeprecationWarning,
@@ -952,17 +939,5 @@ class SourceLoaderDeprecationWarningsTests(unittest.TestCase):
             loader.path_mtime('foo.py')
 
 
-class ResourceLoaderDeprecationWarningsTests(unittest.TestCase):
-    """Tests ResourceLoader deprecation warnings."""
-
-    def test_deprecated_resource_loader(self):
-        from importlib.abc import ResourceLoader
-        class DummyLoader(ResourceLoader):
-            def get_data(self, path):
-                return b''
-
-        with self.assertWarns(DeprecationWarning):
-            DummyLoader()
-
 if __name__ == '__main__':
     unittest.main()
diff --git a/Misc/NEWS.d/next/Library/2025-08-08-15-00-38.gh-issue-137426.lW-Rk2.rst b/Misc/NEWS.d/next/Library/2025-08-08-15-00-38.gh-issue-137426.lW-Rk2.rst
new file mode 100644 (file)
index 0000000..6d05c8a
--- /dev/null
@@ -0,0 +1,3 @@
+Remove the code deprecation of ``importlib.abc.ResourceLoader``. It is
+documented as deprecated, but left for backwards compatibility with other
+classes in ``importlib.abc``.