B
    2*\3              
   @   s  d dl mZ d dl mZ d dl mZ yddlZW n2 ek
rb Z zejdkrN dZW ddZ[X Y nX yddlZW n& ek
r Z zeZW ddZ[X Y nX ddl	Z	ddl
Z
dd ZG d	d
 d
e	jdZG dd deZeeejejejej G dd deZeeej G dd de	jdZG dd deZG dd deZeeejej G dd deZeeej G dd dejeeZeeejej G dd dejeeZeeej G dd de	jdZeeej dS )   )
_bootstrap)_bootstrap_external)	machinery    N_frozen_importlibc          	   G   s`   xZ|D ]R}|  | td k	rytt|j}W n  tk
rL   tt|j}Y nX |  | qW d S )N)registerr   getattr__name__AttributeError_frozen_importlib_external)abstract_clsclassescls
frozen_cls r   8C:\ALexclude\prg\programme\Python37\Lib\importlib\abc.py	_register   s    

r   c               @   s   e Zd ZejdddZdS )FinderNc             C   s   d S )Nr   )selffullnamepathr   r   r   find_module*   s    zFinder.find_module)N)r	   
__module____qualname__abcabstractmethodr   r   r   r   r   r      s   r   )	metaclassc               @   s   e Zd Zdd Zdd ZdS )MetaPathFinderc             C   s<   t jdtdd t| dsd S | ||}|d k	r8|jS d S )NzxMetaPathFinder.find_module() is deprecated since Python 3.4 in favor of MetaPathFinder.find_spec() (available since 3.4)   )
stacklevel	find_spec)warningswarnDeprecationWarninghasattrr    loader)r   r   r   foundr   r   r   r   9   s    
zMetaPathFinder.find_modulec             C   s   d S )Nr   )r   r   r   r   invalidate_cachesN   s    z MetaPathFinder.invalidate_cachesN)r	   r   r   r   r'   r   r   r   r   r   2   s   r   c               @   s"   e Zd Zdd ZejZdd ZdS )PathEntryFinderc             C   s\   t jdtdd t| ds"d g fS | |}|d k	rP|js@g }n|j}|j|fS d g fS d S )NzzPathEntryFinder.find_loader() is deprecated since Python 3.4 in favor of PathEntryFinder.find_spec() (available since 3.4)r   )r   r    )r!   r"   r#   r$   r    submodule_search_locationsr%   )r   r   r&   portionsr   r   r   find_loader^   s    


zPathEntryFinder.find_loaderc             C   s   d S )Nr   )r   r   r   r   r'      s    z!PathEntryFinder.invalidate_cachesN)r	   r   r   r+   r   _find_module_shimr   r'   r   r   r   r   r(   W   s    r(   c               @   s$   e Zd Zdd Zdd Zdd ZdS )Loaderc             C   s   d S )Nr   )r   specr   r   r   create_module   s    zLoader.create_modulec             C   s   t | dstt| |S )Nexec_module)r$   ImportErrorr   _load_module_shim)r   r   r   r   r   load_module   s    
zLoader.load_modulec             C   s   t d S )N)NotImplementedError)r   moduler   r   r   module_repr   s    
zLoader.module_reprN)r	   r   r   r/   r3   r6   r   r   r   r   r-      s   r-   c               @   s   e Zd Zejdd ZdS )ResourceLoaderc             C   s   t d S )N)OSError)r   r   r   r   r   get_data   s    zResourceLoader.get_dataN)r	   r   r   r   r   r9   r   r   r   r   r7      s   	r7   c               @   sH   e Zd Zdd Zdd Zejdd Zeddd	Z	e
jjZe
jjZd
S )InspectLoaderc             C   s   t d S )N)r1   )r   r   r   r   r   
is_package   s    zInspectLoader.is_packagec             C   s    |  |}|d krd S | |S )N)
get_sourcesource_to_code)r   r   sourcer   r   r   get_code   s    
zInspectLoader.get_codec             C   s   t d S )N)r1   )r   r   r   r   r   r<      s    zInspectLoader.get_source<string>c             C   s   t | |dddS )NexecT)dont_inherit)compile)datar   r   r   r   r=      s    zInspectLoader.source_to_codeN)r@   )r	   r   r   r;   r?   r   r   r<   staticmethodr=   r   _LoaderBasicsr0   r3   r   r   r   r   r:      s   		r:   c               @   s"   e Zd Zejdd Zdd ZdS )ExecutionLoaderc             C   s   t d S )N)r1   )r   r   r   r   r   get_filename  s    zExecutionLoader.get_filenamec             C   sP   |  |}|d krd S y| |}W n tk
r>   | |S X | ||S d S )N)r<   rH   r1   r=   )r   r   r>   r   r   r   r   r?     s    
zExecutionLoader.get_codeN)r	   r   r   r   r   rH   r?   r   r   r   r   rG      s   		rG   c               @   s   e Zd ZdS )
FileLoaderN)r	   r   r   r   r   r   r   rI   !  s   rI   c               @   s$   e Zd Zdd Zdd Zdd ZdS )SourceLoaderc             C   s$   | j jtj krtt|  |d S )Nmtime)
path_stats__func__rJ   r8   int)r   r   r   r   r   
path_mtime;  s    zSourceLoader.path_mtimec             C   s    | j jtj krtd|  |iS )NrK   )rO   rM   rJ   r8   )r   r   r   r   r   rL   A  s    zSourceLoader.path_statsc             C   s   d S )Nr   )r   r   rD   r   r   r   set_dataL  s    zSourceLoader.set_dataN)r	   r   r   rO   rL   rP   r   r   r   r   rJ   *  s   rJ   c               @   sD   e Zd Zejdd Zejdd Zejdd Zejdd Zd	S )
ResourceReaderc             C   s   t d S )N)FileNotFoundError)r   resourcer   r   r   open_resourceb  s    	zResourceReader.open_resourcec             C   s   t d S )N)rR   )r   rS   r   r   r   resource_pathm  s    
zResourceReader.resource_pathc             C   s   t d S )N)rR   )r   namer   r   r   is_resourcey  s    zResourceReader.is_resourcec             C   s   g S )Nr   )r   r   r   r   contents~  s    zResourceReader.contentsN)	r	   r   r   r   r   rT   rU   rW   rX   r   r   r   r   rQ   Y  s   	rQ   ) r   r   r   r   r1   excrV   r   r   r!   r   ABCMetar   r   BuiltinImporterFrozenImporter
PathFinderWindowsRegistryFinderr(   
FileFinderr-   r7   r:   rG   ExtensionFileLoaderrI   SourceFileLoaderSourcelessFileLoaderrJ   rQ   r   r   r   r   <module>   sD   
!./2",+