(root)/
Python-3.11.7/
Lib/
importlib/
_abc.py
       1  """Subset of importlib.abc used to reduce importlib.util imports."""
       2  from . import _bootstrap
       3  import abc
       4  import warnings
       5  
       6  
       7  class ESC[4;38;5;81mLoader(metaclass=ESC[4;38;5;149mabcESC[4;38;5;149m.ESC[4;38;5;149mABCMeta):
       8  
       9      """Abstract base class for import loaders."""
      10  
      11      def create_module(self, spec):
      12          """Return a module to initialize and into which to load.
      13  
      14          This method should raise ImportError if anything prevents it
      15          from creating a new module.  It may return None to indicate
      16          that the spec should create the new module.
      17          """
      18          # By default, defer to default semantics for the new module.
      19          return None
      20  
      21      # We don't define exec_module() here since that would break
      22      # hasattr checks we do to support backward compatibility.
      23  
      24      def load_module(self, fullname):
      25          """Return the loaded module.
      26  
      27          The module must be added to sys.modules and have import-related
      28          attributes set properly.  The fullname is a str.
      29  
      30          ImportError is raised on failure.
      31  
      32          This method is deprecated in favor of loader.exec_module(). If
      33          exec_module() exists then it is used to provide a backwards-compatible
      34          functionality for this method.
      35  
      36          """
      37          if not hasattr(self, 'exec_module'):
      38              raise ImportError
      39          # Warning implemented in _load_module_shim().
      40          return _bootstrap._load_module_shim(self, fullname)
      41  
      42      def module_repr(self, module):
      43          """Return a module's repr.
      44  
      45          Used by the module type when the method does not raise
      46          NotImplementedError.
      47  
      48          This method is deprecated.
      49  
      50          """
      51          warnings.warn("importlib.abc.Loader.module_repr() is deprecated and "
      52                        "slated for removal in Python 3.12", DeprecationWarning)
      53          # The exception will cause ModuleType.__repr__ to ignore this method.
      54          raise NotImplementedError