a
    zeL:                  
   @   s  d dl mZ d dl mZ d dl mZ zddlZW n4 eyd Z zejdkrL dZW Y dZ[n
dZ[0 0 zddlZW n ey   eZY n0 ddl	Z	ddl
Z
ddlmZm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 eG dd  d eZ"G d!d" d"e!Z#dS )#   )
_bootstrap)_bootstrap_external)	machinery    N_frozen_importlib)Protocolruntime_checkablec              	   G   sZ   |D ]P}|  | td urztt|j}W n tyH   tt|j}Y n0 |  | qd S N)registerr   getattr__name__AttributeError_frozen_importlib_external)abstract_clsclassescls
frozen_cls r   #/usr/lib/python3.9/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 r	   r   )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 u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   :   s    
zMetaPathFinder.find_modulec                 C   s   d S r	   r   r   r   r   r   invalidate_cachesO   s    z MetaPathFinder.invalidate_cachesN)r   r   r   r   r,   r   r   r   r   r    3   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 u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 r	   r   r+   r   r   r   r,      s    z!PathEntryFinder.invalidate_cachesN)r   r   r   r0   r   _find_module_shimr   r,   r   r   r   r   r-   X   s    r-   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Loaderc                 C   s   d S r	   r   )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 r	   )NotImplementedError)r   moduler   r   r   module_repr   s    
zLoader.module_reprN)r   r   r   r4   r9   r<   r   r   r   r   r2      s   r2   c                   @   s   e Zd Zejdd ZdS )ResourceLoaderc                 C   s   t d S r	   )OSErrorr   r   r   r   r   get_data   s    zResourceLoader.get_dataN)r   r   r   r   r   r@   r   r   r   r   r=      s   	r=   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 r	   r6   r8   r   r   r   
is_package   s    zInspectLoader.is_packagec                 C   s    |  |}|d u rd S | |S r	   )
get_sourcesource_to_code)r   r   sourcer   r   r   get_code   s    
zInspectLoader.get_codec                 C   s   t d S r	   rB   r8   r   r   r   rD      s    zInspectLoader.get_source<string>c                 C   s   t | |dddS )NexecT)dont_inherit)compile)datar   r   r   r   rE      s    zInspectLoader.source_to_codeN)rH   )r   r   r   rC   rG   r   r   rD   staticmethodrE   r   _LoaderBasicsr5   r9   r   r   r   r   rA      s   	
rA   c                   @   s"   e Zd Zejdd Zdd ZdS )ExecutionLoaderc                 C   s   t d S r	   rB   r8   r   r   r   get_filename  s    zExecutionLoader.get_filenamec                 C   sR   |  |}|d u rd S z| |}W n ty@   | | Y S 0 | ||S d S r	   )rD   rP   r6   rE   )r   r   rF   r   r   r   r   rG     s    
zExecutionLoader.get_codeN)r   r   r   r   r   rP   rG   r   r   r   r   rO      s   	
rO   c                   @   s   e Zd ZdS )
FileLoaderN)r   r   r   r   r   r   r   rQ   "  s   rQ   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )SourceLoaderc                 C   s$   | j jtj u rtt|  |d S Nmtime)
path_stats__func__rR   r>   intr?   r   r   r   
path_mtime<  s    zSourceLoader.path_mtimec                 C   s    | j jtj u rtd|  |iS rS   )rX   rV   rR   r>   r?   r   r   r   rU   B  s    zSourceLoader.path_statsc                 C   s   d S r	   r   )r   r   rL   r   r   r   set_dataM  s    zSourceLoader.set_dataN)r   r   r   rX   rU   rY   r   r   r   r   rR   +  s   rR   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 r	   FileNotFoundErrorr   resourcer   r   r   open_resourcec  s    	zResourceReader.open_resourcec                 C   s   t d S r	   r[   r]   r   r   r   resource_pathn  s    
zResourceReader.resource_pathc                 C   s   t d S r	   r[   )r   namer   r   r   is_resourcez  s    zResourceReader.is_resourcec                 C   s   g S r	   r   r+   r   r   r   contents  s    zResourceReader.contentsN)	r   r   r   r   r   r_   r`   rb   rc   r   r   r   r   rZ   Z  s   	



rZ   c                   @   s   e Zd Zejdd Zejdd ZejdddZejdd	 Zejd
d Z	ejdd Z
ejdd ZejdddZejdd ZdS )Traversablec                 C   s   d S r	   r   r+   r   r   r   iterdir  s    zTraversable.iterdirc                 C   s   d S r	   r   r+   r   r   r   
read_bytes  s    zTraversable.read_bytesNc                 C   s   d S r	   r   )r   encodingr   r   r   	read_text  s    zTraversable.read_textc                 C   s   d S r	   r   r+   r   r   r   is_dir  s    zTraversable.is_dirc                 C   s   d S r	   r   r+   r   r   r   is_file  s    zTraversable.is_filec                 C   s   d S r	   r   r   childr   r   r   joinpath  s    zTraversable.joinpathc                 C   s   d S r	   r   rk   r   r   r   __truediv__  s    zTraversable.__truediv__rc                 O   s   d S r	   r   )r   modeargskwargsr   r   r   open  s    zTraversable.openc                 C   s   d S r	   r   r+   r   r   r   ra     s    zTraversable.name)N)ro   )r   r   r   r   r   re   rf   rh   ri   rj   rm   rn   rs   abstractpropertyra   r   r   r   r   rd     s$   





	rd   c                   @   s:   e Zd Zejdd Zdd Zdd Zdd Zd	d
 Z	dS )TraversableResourcesc                 C   s   d S r	   r   r+   r   r   r   files  s    zTraversableResources.filesc                 C   s   |   |dS )Nrb)rv   rm   rs   r]   r   r   r   r_     s    z"TraversableResources.open_resourcec                 C   s   t |d S r	   r[   r]   r   r   r   r`     s    z"TraversableResources.resource_pathc                 C   s   |   | S r	   )rv   rm   isfiler?   r   r   r   rb     s    z TraversableResources.is_resourcec                 C   s   dd |    D S )Nc                 s   s   | ]}|j V  qd S r	   )ra   ).0itemr   r   r   	<genexpr>      z0TraversableResources.contents.<locals>.<genexpr>)rv   re   r+   r   r   r   rc     s    zTraversableResources.contentsN)
r   r   r   r   r   rv   r_   r`   rb   rc   r   r   r   r   ru     s   
ru   )$ r   r   r   r   r6   excra   r   r   r%   typingr   r   r   ABCMetar   r    BuiltinImporterFrozenImporter
PathFinderWindowsRegistryFinderr-   
FileFinderr2   r=   rA   rO   ExtensionFileLoaderrQ   SourceFileLoaderSourcelessFileLoaderrR   rZ   rd   ru   r   r   r   r   <module>   sP   

!./2",+B