o
    éT•j<  ã                   @   s8   d Z ddlmZ ddlZddlZG dd„ dejd�ZdS )z>Subset of importlib.abc used to reduce importlib.util imports.é   )Ú
_bootstrapé    Nc                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚLoaderz'Abstract base class for import loaders.c                 C   s   dS )zü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.
        N© )ÚselfÚspecr   r   ú%/usr/lib/python3.10/importlib/_abc.pyÚcreate_module   s   zLoader.create_modulec                 C   s   t | dƒst‚t | |¡S )aŽ  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.

        Úexec_module)ÚhasattrÚImportErrorr   Ú_load_module_shim)r   Úfullnamer   r   r   Úload_module   s   
zLoader.load_modulec                 C   s   t  dt¡ t‚)z¢Return a module's repr.

        Used by the module type when the method does not raise
        NotImplementedError.

        This method is deprecated.

        zVimportlib.abc.Loader.module_repr() is deprecated and slated for removal in Python 3.12)ÚwarningsÚwarnÚDeprecationWarningÚNotImplementedError)r   Úmoduler   r   r   Úmodule_repr*   s   	ÿzLoader.module_reprN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r   r   r   r      s
    r   )Ú	metaclass)r   Ú r   Úabcr   ÚABCMetar   r   r   r   r   Ú<module>   s
    