diff options
author | Victor Stinner <vstinner@python.org> | 2020-06-17 23:15:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-17 23:15:59 +0200 |
commit | 9e09849d20987c131b28bcdd252e53440d4cd1b3 (patch) | |
tree | 92d787be6889fe22f233f40f40556f66e89bac1d /Lib/importlib/abc.py | |
parent | 236a0f5cf022b59dbb6ea17a8e7a677c573d39b9 (diff) | |
download | cpython-git-9e09849d20987c131b28bcdd252e53440d4cd1b3.tar.gz |
bpo-41006: importlib.util no longer imports typing (GH-20938)
Create importlib._abc submodule to avoid importing typing when
importlib.util is imported. Move Loader ABC into importlib._abc.
Diffstat (limited to 'Lib/importlib/abc.py')
-rw-r--r-- | Lib/importlib/abc.py | 48 |
1 files changed, 1 insertions, 47 deletions
diff --git a/Lib/importlib/abc.py b/Lib/importlib/abc.py index 0b20e7c13f..97d5afa300 100644 --- a/Lib/importlib/abc.py +++ b/Lib/importlib/abc.py @@ -12,6 +12,7 @@ try: import _frozen_importlib_external except ImportError: _frozen_importlib_external = _bootstrap_external +from ._abc import Loader import abc import warnings from typing import Protocol, runtime_checkable @@ -134,53 +135,6 @@ class PathEntryFinder(Finder): _register(PathEntryFinder, machinery.FileFinder) -class Loader(metaclass=abc.ABCMeta): - - """Abstract base class for import loaders.""" - - def create_module(self, spec): - """Return a module to initialize and into which to load. - - This method should raise ImportError if anything prevents it - from creating a new module. It may return None to indicate - that the spec should create the new module. - """ - # By default, defer to default semantics for the new module. - return None - - # We don't define exec_module() here since that would break - # hasattr checks we do to support backward compatibility. - - def load_module(self, fullname): - """Return the loaded module. - - The module must be added to sys.modules and have import-related - attributes set properly. The fullname is a str. - - ImportError is raised on failure. - - This method is deprecated in favor of loader.exec_module(). If - exec_module() exists then it is used to provide a backwards-compatible - functionality for this method. - - """ - if not hasattr(self, 'exec_module'): - raise ImportError - return _bootstrap._load_module_shim(self, fullname) - - def module_repr(self, module): - """Return a module's repr. - - Used by the module type when the method does not raise - NotImplementedError. - - This method is deprecated. - - """ - # The exception will cause ModuleType.__repr__ to ignore this method. - raise NotImplementedError - - class ResourceLoader(Loader): """Abstract base class for loaders which can return data from their |