summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/importlib/abc.py19
-rw-r--r--Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst2
2 files changed, 16 insertions, 5 deletions
diff --git a/Lib/importlib/abc.py b/Lib/importlib/abc.py
index 3fa151f..8fa9a0f 100644
--- a/Lib/importlib/abc.py
+++ b/Lib/importlib/abc.py
@@ -15,20 +15,29 @@ from ._abc import Loader
import abc
import warnings
-# for compatibility with Python 3.10
-from .resources.abc import ResourceReader, Traversable, TraversableResources
+from .resources import abc as _resources_abc
__all__ = [
'Loader', 'Finder', 'MetaPathFinder', 'PathEntryFinder',
'ResourceLoader', 'InspectLoader', 'ExecutionLoader',
'FileLoader', 'SourceLoader',
-
- # for compatibility with Python 3.10
- 'ResourceReader', 'Traversable', 'TraversableResources',
]
+def __getattr__(name):
+ """
+ For backwards compatibility, continue to make names
+ from _resources_abc available through this module. #93963
+ """
+ if name in _resources_abc.__all__:
+ obj = getattr(_resources_abc, name)
+ warnings._deprecated(f"{__name__}.{name}", remove=(3, 14))
+ globals()[name] = obj
+ return obj
+ raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
+
+
def _register(abstract_cls, *classes):
for cls in classes:
abstract_cls.register(cls)
diff --git a/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst b/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst
new file mode 100644
index 0000000..0973982
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-06-17-16-00-55.gh-issue-93963.8YYZ-2.rst
@@ -0,0 +1,2 @@
+Officially deprecate from ``importlib.abc`` classes moved to
+``importlib.resources.abc``.