o
     JAfU8                  
   @   s  	 d dl mZ d dl mZ zddlZW n ey- Z zejdkr! dZW Y dZ[ndZ[ww zddlZW n ey?   eZY nw d dlm	Z	 ddl
Z
ddlZddlmZmZmZ ddlmZmZ d	d
 ZG dd de
jdZG dd de
jdZeeejejejej G dd de
jdZeeej 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G dd deZ%G d d! d!e$Z&dS )"   )_bootstrap_external)	machinery    N_frozen_importlib)Loader)BinaryIOIterableText)Protocolruntime_checkablec              	   G   sZ   |D ](}|  | td ur*ztt|j}W n ty$   tt|j}Y nw |  | qd S N)registerr   getattr__name__AttributeError_frozen_importlib_external)Zabstract_clsZclassesclsZ
frozen_cls r   $/usr/lib/python3.10/importlib/abc.py	_register   s   

r   c                   @   s&   e Zd Z	 dd ZejdddZdS )Finderc                 C   s   t dt d S )Nzqthe Finder ABC is deprecated and slated for removal in Python 3.12; use MetaPathFinder or PathEntryFinder insteadwarningswarnDeprecationWarningselfr   r   r   __init__,   s   zFinder.__init__Nc                 C   s   	 t dt d S )Nzimportlib.abc.Finder along with its find_module() method are deprecated and slated for removal in Python 3.12; use MetaPathFinder.find_spec() or PathEntryFinder.find_spec() insteadr   )r   fullnamepathr   r   r   find_module2   s   zFinder.find_moduler   )r   
__module____qualname__r   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r|jS d S )NzMetaPathFinder.find_module() is deprecated since Python 3.4 in favor of MetaPathFinder.find_spec() and is slated for removal in Python 3.12   
stacklevel	find_spec)r   r   r   hasattrr*   loader)r   r   r   foundr   r   r   r    G   s   

zMetaPathFinder.find_modulec                 C      d S r   r   r   r   r   r   invalidate_caches\      z MetaPathFinder.invalidate_cachesN)r   r!   r"   r    r/   r   r   r   r   r&   @   s    r&   c                   @   s$   e Zd Z	 dd ZejZdd ZdS )PathEntryFinderc                 C   sZ   	 t jdtdd t| dsd g fS | |}|d ur)|js!g }n|j}|j|fS d g f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_loaderl   s   


zPathEntryFinder.find_loaderc                 C   r.   r   r   r   r   r   r   r/      r0   z!PathEntryFinder.invalidate_cachesN)r   r!   r"   r4   r   _find_module_shimr    r/   r   r   r   r   r1   e   s
     r1   c                   @   s   e Zd Z	 ejdd ZdS )ResourceLoaderc                 C      	 t r   )OSErrorr   r   r   r   r   get_data   s   zResourceLoader.get_dataN)r   r!   r"   r#   r$   r:   r   r   r   r   r6      s    r6   c                   @   sJ   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   r7   r   ImportErrorr   r   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   r7   r   r<   r>   r   r   r   r@         zInspectLoader.get_source<string>c                 C   s   	 t | |dddS )NexecT)dont_inherit)compile)datar   r   r   r   rA      s   zInspectLoader.source_to_codeN)rE   )r   r!   r"   r?   rC   r#   r$   r@   staticmethodrA   r   _LoaderBasicsexec_moduleload_moduler   r   r   r   r;      s    
r;   c                   @   s$   e Zd Z	 ejdd Zdd ZdS )ExecutionLoaderc                 C   r7   r   r<   r>   r   r   r   get_filename   rD   zExecutionLoader.get_filenamec                 C   sP   	 |  |}|d u rd S z| |}W n ty!   | | Y S w | ||S r   )r@   rO   r=   rA   )r   r   rB   r   r   r   r   rC      s   
zExecutionLoader.get_codeN)r   r!   r"   r#   r$   rO   rC   r   r   r   r   rN      s
    
rN   c                   @   s   e Zd ZdS )
FileLoaderN)r   r!   r"   r   r   r   r   rP      s    rP   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__rQ   r8   intr9   r   r   r   
path_mtime  s   zSourceLoader.path_mtimec                 C   s"   	 | j jtj u r
td|  |iS rR   )rW   rU   rQ   r8   r9   r   r   r   rT      s   zSourceLoader.path_statsc                 C   r.   r   r   )r   r   rI   r   r   r   set_data+  r0   zSourceLoader.set_dataN)r   r!   r"   rW   rT   rX   r   r   r   r   rQ   	  s
    rQ   c                   @   sn   e Zd Z	 ejdedefddZejdedefddZejdede	fdd	Z
ejdee fd
dZdS )ResourceReaderresourcereturnc                 C   r7   r   FileNotFoundErrorr   rZ   r   r   r   open_resource;  s   zResourceReader.open_resourcec                 C   r7   r   r\   r^   r   r   r   resource_pathG  s   	zResourceReader.resource_pathr   c                 C   r7   r   r\   r9   r   r   r   is_resourceT  s   zResourceReader.is_resourcec                 C   r7   r   r\   r   r   r   r   contents\  s   zResourceReader.contentsN)r   r!   r"   r#   r$   r	   r   r_   r`   boolra   r   strrb   r   r   r   r   rY   8  s    rY   c                   @   s   e Zd Z	 ejdd Zdd ZdddZejdefd	d
Z	ejdefddZ
ejdd Zdd ZejdddZejdefddZdS )Traversablec                 C   r.   r   r   r   r   r   r   iterdiri     zTraversable.iterdirc                 C   s8   	 |  d}| W  d    S 1 sw   Y  d S Nrbopenread)r   strmr   r   r   
read_byteso  s   $zTraversable.read_bytesNc                 C   s:   	 | j |d}| W  d    S 1 sw   Y  d S )N)encodingrj   )r   ro   rm   r   r   r   	read_textv  s   $zTraversable.read_textr[   c                 C   r.   r   r   r   r   r   r   is_dir}  rg   zTraversable.is_dirc                 C   r.   r   r   r   r   r   r   is_file  rg   zTraversable.is_filec                 C   r.   r   r   r   childr   r   r   joinpath  rg   zTraversable.joinpathc                 C   s   	 |  |S r   )ru   rs   r   r   r   __truediv__  s   
zTraversable.__truediv__rc                 O   r.   r   r   )r   modeargskwargsr   r   r   rk     rg   zTraversable.openc                 C   r.   r   r   r   r   r   r   name  rg   zTraversable.namer   )rw   )r   r!   r"   r#   r$   rf   rn   rp   rc   rq   rr   ru   rv   rk   abstractpropertyrd   r{   r   r   r   r   re   b  s"    


	re   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   r.   r   r   r   r   r   r   files  rg   zTraversableResources.filesc                 C   s   |   |dS rh   )r~   ru   rk   r^   r   r   r   r_     s   z"TraversableResources.open_resourcec                 C   s   t |r   r\   r^   r   r   r   r`     s   z"TraversableResources.resource_pathc                 C   s   |   | S r   )r~   ru   rr   r9   r   r   r   ra     s   z TraversableResources.is_resourcec                 C   s   dd |    D S )Nc                 s   s    | ]}|j V  qd S r   )r{   ).0itemr   r   r   	<genexpr>  s    z0TraversableResources.contents.<locals>.<genexpr>)r~   rf   r   r   r   r   rb     s   zTraversableResources.contentsN)
r   r!   r"   r#   r$   r~   r_   r`   ra   rb   r   r   r   r   r}     s    
r}   )' r   r   r   r=   excr{   r   _abcr   r#   r   typingr   r   r	   r
   r   r   ABCMetar   r&   BuiltinImporterFrozenImporter
PathFinderWindowsRegistryFinderr1   
FileFinderr6   r;   rN   ExtensionFileLoaderrP   SourceFileLoaderSourcelessFileLoaderrQ   rY   re   r}   r   r   r   r   <module>   sX    
 !.2",*C