[3.14] GH-137426: Remove code deprecation of importlib.abc.ResourceLoader (GH-137567) (#137654)
Some checks are pending
Tests / (push) Blocked by required conditions
Tests / Windows MSI (push) Blocked by required conditions
Tests / WASI (push) Blocked by required conditions
Tests / Hypothesis tests on Ubuntu (push) Blocked by required conditions
Tests / Change detection (push) Waiting to run
Tests / Docs (push) Blocked by required conditions
Tests / Check if the ABI has changed (push) Blocked by required conditions
Tests / Check if Autoconf files are up to date (push) Blocked by required conditions
Tests / Check if generated files are up to date (push) Blocked by required conditions
Tests / Ubuntu SSL tests with OpenSSL (push) Blocked by required conditions
Tests / Address sanitizer (push) Blocked by required conditions
Tests / Sanitizers (push) Blocked by required conditions
Tests / Cross build Linux (push) Blocked by required conditions
Tests / CIFuzz (push) Blocked by required conditions
Tests / All required checks pass (push) Blocked by required conditions
Lint / lint (push) Waiting to run

Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2025-08-12 14:47:28 +02:00 committed by GitHub
parent 946b226b90
commit daed07a1f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 38 deletions

View 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:

View file

@ -64,21 +64,15 @@ _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.
For directly loading resources, use TraversableResources instead. This class
primarily exists for backwards compatibility with other ABCs in this module.
"""
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__()
@abc.abstractmethod
def get_data(self, path):
"""Abstract method which when implemented should return the bytes for

View 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()

View file

@ -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``.