Skip to content

Commit

Permalink
gh-93963: Officially deprecate abcs and warn about their usage. (GH-9…
Browse files Browse the repository at this point in the history
…3965)

Fixes #93963

Automerge-Triggered-By: GH:jaraco
  • Loading branch information
jaraco authored Jul 3, 2022
1 parent b296c74 commit 71848c9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
19 changes: 14 additions & 5 deletions Lib/importlib/abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,29 @@
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)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Officially deprecate from ``importlib.abc`` classes moved to
``importlib.resources.abc``.

0 comments on commit 71848c9

Please sign in to comment.