| """Subset of importlib.abc used to reduce importlib.util imports.""" |
| from . import _bootstrap |
| import abc |
| import warnings |
|
|
|
|
| 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. |
| """ |
| |
| return None |
|
|
| |
| |
|
|
| 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. |
| |
| """ |
| warnings.warn("importlib.abc.Loader.module_repr() is deprecated and " |
| "slated for removal in Python 3.12", DeprecationWarning) |
| |
| raise NotImplementedError |
|
|