mirror of
https://github.com/python/cpython
synced 2024-10-05 03:14:59 +00:00
e1182bc377
* gh-94619: Remove long deprecated methods module_repr() and load_module() Closes #94619 * Update Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst Fix typo Co-authored-by: Brett Cannon <brett@python.org> Co-authored-by: Brett Cannon <brett@python.org>
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
"""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.
|
|
"""
|
|
# 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
|
|
# Warning implemented in _load_module_shim().
|
|
return _bootstrap._load_module_shim(self, fullname)
|