o
     JAf                     @   s  	 d d Z dZdZdZdadd Zdd Zi Zi ZG dd de	Z
G d	d
 d
ZG dd dZG dd dZdd Zdd Zdd ZddddZdd Zdd Zdd Zdd  ZG d!d" d"Zddd#d$d%Zd_d&d'Zd(d)d*d+Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 ZG d8d9 d9Z G d:d; d;Z!G d<d= d=Z"d>d? Z#d@dA Z$d`dBdCZ%dDdE Z&dFZ'e'dG Z(dHdI Z)e* Z+dJdK Z,dadMdNZ-d(dOdPdQZ.dRdS Z/dbdUdVZ0dWdX Z1dYdZ Z2d[d\ Z3d]d^ Z4dS )cc                 C   s&   z| j W S  ty   t| j  Y S w N)__qualname__AttributeErrortype)obj r   +/usr/lib/python3.10/importlib/_bootstrap.py_object_name   s
   r   Nc                 C   s:   	 dD ]}t ||rt| |t|| q| j|j d S )N)
__module____name__r   __doc__)hasattrsetattrgetattr__dict__update)newoldreplacer   r   r   _wrap(   s   
r   c                 C   s   t t| S r   )r   sysnamer   r   r   _new_module0   s   r   c                   @   s   e Zd ZdS )_DeadlockErrorN)r
   r	   r   r   r   r   r   r   =   s    r   c                   @   s6   e Zd Z	 dd Zdd Zdd Zdd Zd	d
 ZdS )_ModuleLockc                 C   s0   t  | _t  | _|| _d | _d| _d| _d S N    )_threadallocate_locklockwakeupr   ownercountwaitersselfr   r   r   r   __init__G   s   


z_ModuleLock.__init__c                 C   sV   t  }| j}t }	 t|}|d u rdS |j}||krdS ||v r%dS || q)NTF)r   	get_identr!   set_blocking_ongetadd)r%   metidseenr   r   r   r   has_deadlockO   s   

z_ModuleLock.has_deadlockc                 C   s   	 t  }| t|< zW	 | j@ | jdks| j|kr0|| _|  jd7  _	 W d    W t|= dS |  r:td|  | j	drG|  j
d7  _
W d    n1 sQw   Y  | j	  | j  qt|= w )NTr      zdeadlock detected by %rF)r   r'   r)   r   r"   r!   r/   r   r    acquirer#   releaser%   r-   r   r   r   r1   d   s,   



z_ModuleLock.acquirec                 C   s   t  }| j@ | j|krtd|  jd8  _| jdkr7d | _| jr?|  jd8  _| j  W d    d S W d    d S W d    d S 1 sJw   Y  d S )Ncannot release un-acquired lockr0   r   )	r   r'   r   r!   RuntimeErrorr"   r#   r    r2   r3   r   r   r   r2   }   s   

"z_ModuleLock.releasec                 C      d | jt| S )Nz_ModuleLock({!r}) at {}formatr   idr%   r   r   r   __repr__      z_ModuleLock.__repr__N)r
   r	   r   r&   r/   r1   r2   r;   r   r   r   r   r   A   s    r   c                   @   s.   e Zd Z	 dd Zdd Zdd Zdd Zd	S )
_DummyModuleLockc                 C   s   || _ d| _d S r   )r   r"   r$   r   r   r   r&         
z_DummyModuleLock.__init__c                 C   s   |  j d7  _ dS )Nr0   T)r"   r:   r   r   r   r1      s   z_DummyModuleLock.acquirec                 C   s$   | j dkr	td|  j d8  _ d S )Nr   r4   r0   )r"   r5   r:   r   r   r   r2      s   
z_DummyModuleLock.releasec                 C   r6   )Nz_DummyModuleLock({!r}) at {}r7   r:   r   r   r   r;      r<   z_DummyModuleLock.__repr__N)r
   r	   r   r&   r1   r2   r;   r   r   r   r   r=      s    r=   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )_ModuleLockManagerc                 C   s   || _ d | _d S r   )_name_lockr$   r   r   r   r&      r>   z_ModuleLockManager.__init__c                 C   s   t | j| _| j  d S r   )_get_module_lockr@   rA   r1   r:   r   r   r   	__enter__   s   z_ModuleLockManager.__enter__c                 O   s   | j   d S r   )rA   r2   )r%   argskwargsr   r   r   __exit__   s   z_ModuleLockManager.__exit__N)r
   r	   r   r&   rC   rF   r   r   r   r   r?      s    r?   c                 C   s   	 t   z@zt|   }W n ty   d }Y nw |d u r?td u r&t| }nt| }| fdd}t||t| < W t 	  |S W t 	  |S t 	  w )Nc                 S   sD   t   zt|| u rt|= W t   d S W t   d S t   w r   )_impacquire_lock_module_locksr*   release_lock)refr   r   r   r   cb   s   z_get_module_lock.<locals>.cb)
rG   rH   rI   KeyErrorr   r=   r   _weakrefrK   rJ   )r   r   rL   r   r   r   rB      s(   

rB   c                 C   s8   	 t | }z|  W n
 ty   Y d S w |  d S r   )rB   r1   r   r2   )r   r   r   r   r   _lock_unlock_module   s   rO   c                 O   s   	 | |i |S r   r   )frD   kwdsr   r   r   _call_with_frames_removed   s   rR   r0   )	verbosityc                G   s<   	 t jj|kr| dsd|  } t| j| t jd d S d S )N)#zimport z# )file)r   flagsverbose
startswithprintr8   stderr)messagerS   rD   r   r   r   _verbose_message   s   
r\   c                       	  fdd}t |  |S )Nc                    s&   |t jvrtd||d | |S Nz{!r} is not a built-in moduler   )r   builtin_module_namesImportErrorr8   r%   fullnamefxnr   r   _requires_builtin_wrapper   
   


z4_requires_builtin.<locals>._requires_builtin_wrapperr   )rd   re   r   rc   r   _requires_builtin      
rh   c                    r]   )Nc                    s&   t |std||d | |S Nz{!r} is not a frozen moduler   )rG   	is_frozenr`   r8   ra   rc   r   r   _requires_frozen_wrapper	  rf   z2_requires_frozen.<locals>._requires_frozen_wrapperrg   )rd   rl   r   rc   r   _requires_frozen  ri   rm   c                 C   sL   	 d}t |t t|| }|tjv r"tj| }t|| tj| S t|S )Nzgthe load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead)	_warningswarnDeprecationWarningspec_from_loaderr   modules_exec_load)r%   rb   msgspecmoduler   r   r   _load_module_shim  s   




rx   c                 C   s   	 t | dd }t | dd  }rt|S t|dr(z|| W S  ty'   Y nw z| j}W n ty8   d}Y nw z| j}W n tyX   |d u rPd| Y S d|| Y S w d||S )N
__loader____spec__module_repr?<module {!r}><module {!r} ({!r})><module {!r} from {!r}>)	r   _module_repr_from_specr   r{   	Exceptionr
   r   __file__r8   )rw   loaderrv   r   filenamer   r   r   _module_repr&  s.   


r   c                   @   sp   e Zd Z	 ddddddZdd Zdd Zed	d
 Zejdd
 Zedd Z	edd Z
e
jdd Z
dS )
ModuleSpecN)originloader_state
is_packagec                C   s6   || _ || _|| _|| _|rg nd | _d| _d | _d S NF)r   r   r   r   submodule_search_locations_set_fileattr_cached)r%   r   r   r   r   r   r   r   r   r&   e  s   
zModuleSpec.__init__c                 C   sf   d | jd | jg}| jd ur|d | j | jd ur(|d | j d | jjd|S )Nz	name={!r}zloader={!r}zorigin={!r}zsubmodule_search_locations={}z{}({})z, )	r8   r   r   r   appendr   	__class__r
   join)r%   rD   r   r   r   r;   q  s   



zModuleSpec.__repr__c                 C   sf   | j }z$| j|jko&| j|jko&| j|jko&||j ko&| j|jko&| j|jkW S  ty2   t Y S w r   )r   r   r   r   cachedhas_locationr   NotImplemented)r%   othersmslr   r   r   __eq__{  s    



zModuleSpec.__eq__c                 C   s:   | j d u r| jd ur| jrtd u rtt| j| _ | j S r   )r   r   r   _bootstrap_externalNotImplementedError_get_cachedr:   r   r   r   r     s   
zModuleSpec.cachedc                 C   s
   || _ d S r   )r   )r%   r   r   r   r   r     s   
c                 C   s"   	 | j d u r| jdd S | jS )N.r   )r   r   
rpartitionr:   r   r   r   parent  s   
zModuleSpec.parentc                 C   s   | j S r   )r   r:   r   r   r   r     s   zModuleSpec.has_locationc                 C   s   t || _d S r   )boolr   )r%   valuer   r   r   r     s   )r
   r	   r   r&   r;   r   propertyr   setterr   r   r   r   r   r   r   @  s"    $




r   r   r   c                C   s   	 t |dr&td u rttj}|d u r|| |dS |rg nd }|| ||dS |d u rDt |drBz|| }W n tyA   d }Y nw d}t| |||dS )Nget_filename)r   )r   r   r   Fr   )r   r   r   spec_from_file_locationr   r`   r   )r   r   r   r   r   searchr   r   r   rq     s(   

rq   c                 C   s&  z| j }W n	 ty   Y nw |d ur|S | j}|d u r+z| j}W n	 ty*   Y nw z| j}W n ty;   d }Y nw |d u rW|d u rUz|j}W n tyT   d }Y nw |}z| j}W n tyg   d }Y nw zt| j}W n tyz   d }Y nw t	|||d}|d u rdnd|_
||_||_|S )Nr   FT)rz   r   r
   ry   r   _ORIGIN
__cached__list__path__r   r   r   r   )rw   r   r   rv   r   locationr   r   r   r   r   _spec_from_module  sT   




r   Foverridec                C   s  |s
t |dd d u rz| j|_W n	 ty   Y nw |s$t |dd d u rW| j}|d u rH| jd urHtd u r6ttj}|	|}| j|_
|| _d |_z||_W n	 tyV   Y nw |sat |dd d u rqz| j|_W n	 typ   Y nw z| |_W n	 ty   Y nw |st |dd d u r| jd urz| j|_W n	 ty   Y nw | jr|st |dd d u rz| j|_W n	 ty   Y nw |st |dd d u r| jd urz| j|_W |S  ty   Y |S w |S )Nr
   ry   __package__r   r   r   )r   r   r
   r   r   r   r   r   _NamespaceLoader__new___pathr   ry   r   r   rz   r   r   r   r   r   )rv   rw   r   r   r   r   r   r   _init_module_attrs  sr   






r   c                 C   sT   	 d }t | jdr| j| }n
t | jdrtd|d u r#t| j}t| | |S )Ncreate_moduleexec_modulezBloaders that define exec_module() must also define create_module())r   r   r   r`   r   r   r   rv   rw   r   r   r   module_from_spec4  s   

r   c                 C   sf   	 | j d u rdn| j }| jd u r!| jd u rd|S d|| jS | jr+d|| jS d| j | jS )Nr|   r}   r~   r   <module {!r} ({})>)r   r   r   r8   r   )rv   r   r   r   r   r   E  s   


r   c              
   C   s  	 | j }t|{ tj||urd|}t||dzP| jd u r6| jd u r.td| j dt	| |dd n(t	| |dd t
| jdsXt| j d}t|t | j| n| j| W tj| j }|tj| j < ntj| j }|tj| j < w W d    |S 1 sw   Y  |S )Nzmodule {!r} not in sys.modulesr   missing loaderTr   r   7.exec_module() not found; falling back to load_module())r   r?   r   rr   r*   r8   r`   r   r   r   r   r   rn   ro   ImportWarningload_moduler   pop)rv   rw   r   ru   r   r   r   rs   V  s4   




rs   c                 C   s  z	| j | j W n   | jtjv r tj| j}|tj| j<  tj| j}|tj| j< t|dd d u rFz| j |_W n	 tyE   Y nw t|dd d u rlz|j	|_
t|dsa| jdd |_
W n	 tyk   Y nw t|dd d u rz| |_W |S  ty   Y |S w |S )Nry   r   r   r   r   rz   )r   r   r   r   rr   r   r   ry   r   r
   r   r   r   rz   r   r   r   r   _load_backward_compatiblet  sB   
r   c                 C   s   | j d urt| j dst| j  d}t|t t| S t| }d| _zP|t	j
| j< z| j d u r>| jd u r=td| jdn| j | W n   zt	j
| j= W   tyY   Y  w t	j
| j}|t	j
| j< td| j| j  W d| _|S d| _w )Nr   r   Tr   r   zimport {!r} # {!r}F)r   r   r   rn   ro   r   r   r   _initializingr   rr   r   r   r`   r   rM   r   r\   )rv   ru   rw   r   r   r   _load_unlocked  s<   


r   c                 C   s8   	 t | j t| W  d    S 1 sw   Y  d S r   )r?   r   r   rv   r   r   r   rt     s   $rt   c                   @   s   e Zd Z	 dZedd ZedddZedddZed	d
 Z	edd Z
eedd Zeedd Zeedd ZeeZdS )BuiltinImporterzbuilt-inc                 C   s$   	 t dt d| jdtj dS )NzQBuiltinImporter.module_repr() is deprecated and slated for removal in Python 3.12z<module z (z)>)rn   ro   rp   r
   r   r   rw   r   r   r   r{     s
   zBuiltinImporter.module_reprNc                 C   s*   |d urd S t |rt|| | jdS d S Nr   )rG   
is_builtinrq   r   clsrb   pathtargetr   r   r   	find_spec  s
   
zBuiltinImporter.find_specc                 C   s,   	 t dt | ||}|d ur|jS d S )NzjBuiltinImporter.find_module() is deprecated and slated for removal in Python 3.12; use find_spec() instead)rn   ro   rp   r   r   )r   rb   r   rv   r   r   r   find_module  s   zBuiltinImporter.find_modulec                 C   s0   	 | j tjvrtd| j | j dttj| S r^   )r   r   r_   r`   r8   rR   rG   create_builtinr   r   r   r   r     s   zBuiltinImporter.create_modulec                 C   s   	 t tj|  d S r   )rR   rG   exec_builtinr   r   r   r   r   
  s   zBuiltinImporter.exec_modulec                 C      	 d S r   r   r   rb   r   r   r   get_code     zBuiltinImporter.get_codec                 C   r   r   r   r   r   r   r   
get_source  r   zBuiltinImporter.get_sourcec                 C   s   	 dS r   r   r   r   r   r   r     r   zBuiltinImporter.is_packageNNr   )r
   r	   r   r   staticmethodr{   classmethodr   r   r   r   rh   r   r   r   rx   r   r   r   r   r   r     s.    



r   c                   @   s   e Zd Z	 dZedd ZedddZedddZed	d
 Z	edd Z
edd Zeedd Zeedd Zeedd ZdS )FrozenImporterfrozenc                 C   s   	 t dt d| jtjS )NzPFrozenImporter.module_repr() is deprecated and slated for removal in Python 3.12r   )rn   ro   rp   r8   r
   r   r   )mr   r   r   r{   /  s
   zFrozenImporter.module_reprNc                 C   s   t |rt|| | jdS d S r   )rG   rk   rq   r   r   r   r   r   r   :  s   
zFrozenImporter.find_specc                 C   s    	 t dt t|r| S d S )NziFrozenImporter.find_module() is deprecated and slated for removal in Python 3.12; use find_spec() instead)rn   ro   rp   rG   rk   )r   rb   r   r   r   r   r   A  s
   zFrozenImporter.find_modulec                 C   s   d S r   r   r   r   r   r   r   M  s   zFrozenImporter.create_modulec                 C   s@   | j j}t|std||dttj|}t|| j	 d S rj   )
rz   r   rG   rk   r`   r8   rR   get_frozen_objectexecr   )rw   r   coder   r   r   r   Q  s   

zFrozenImporter.exec_modulec                 C   s   	 t | |S r   )rx   r   r   r   r   r   Z  s   
zFrozenImporter.load_modulec                 C      	 t |S r   )rG   r   r   r   r   r   r   d     
zFrozenImporter.get_codec                 C   r   r   r   r   r   r   r   r   j  r   zFrozenImporter.get_sourcec                 C   r   r   )rG   is_frozen_packager   r   r   r   r   p  r   zFrozenImporter.is_packager   r   )r
   r	   r   r   r   r{   r   r   r   r   r   r   rm   r   r   r   r   r   r   r   r   $  s0    




	r   c                   @   s   e Zd Z	 dd Zdd ZdS )_ImportLockContextc                 C      	 t   d S r   )rG   rH   r:   r   r   r   rC   }     z_ImportLockContext.__enter__c                 C   r   r   )rG   rJ   )r%   exc_type	exc_valueexc_tracebackr   r   r   rF     r   z_ImportLockContext.__exit__N)r
   r	   r   rC   rF   r   r   r   r   r   y  s    r   c                 C   sB   	 | d|d }t||k rtd|d }| rd|| S |S )Nr   r0   z2attempted relative import beyond top-level packager   {}.{})rsplitlenr`   r8   )r   packagelevelbitsbaser   r   r   _resolve_name  s   r   c                 C   s<   t |  d}t|t | ||}|d u rd S t||S )Nz5.find_spec() not found; falling back to find_module())r   rn   ro   r   r   rq   )finderr   r   ru   r   r   r   r   _find_spec_legacy  s   
r   c           
   
   C   s  	 t j}|d u rtd|stdt | t jv }|D ]o}t / z|j}W n t	yA   t
|| |}|d u r?Y W d    qY nw || ||}W d    n1 sRw   Y  |d ur|s| t jv rt j|  }z|j}	W n t	yy   | Y   S w |	d u r|  S |	  S |  S qd S )Nz5sys.meta_path is None, Python is likely shutting downzsys.meta_path is empty)r   	meta_pathr`   rn   ro   r   rr   r   r   r   r   rz   )
r   r   r   r   	is_reloadr   r   rv   rw   rz   r   r   r   
_find_spec  sF   

	

r   c                 C   sp   	 t | tstdt| |dk rtd|dkr*t |ts$td|s*td| s4|dkr6tdd S d S )Nzmodule name must be str, not {}r   zlevel must be >= 0z__package__ not set to a stringz6attempted relative import with no known parent packagezEmpty module name)
isinstancestr	TypeErrorr8   r   
ValueErrorr`   r   r   r   r   r   r   _sanity_check  s   

r   zNo module named z{!r}c           	      C   s  d }|  dd }|r@|tjvrt|| | tjv rtj|  S tj| }z|j}W n ty?   td | |}t|| dd w t	| |}|d u rRtt| | dt
|}|rtj| }|  dd }z	t||| W |S  ty   d|d|}t|t Y |S w |S )Nr   r   z; {!r} is not a packager      zCannot set an attribute on z for child module )r   r   rr   rR   r   r   _ERR_MSGr8   ModuleNotFoundErrorr   r   r   rn   ro   r   )	r   import_r   r   parent_moduleru   rv   rw   childr   r   r   _find_and_load_unlocked  s<   







r   c                 C   s   	 t |  tj| t}|tu rt| |W  d    S W d    n1 s'w   Y  |d u r;d| }t|| dt|  |S )Nz(import of {} halted; None in sys.modulesr   )	r?   r   rr   r*   _NEEDS_LOADINGr   r8   r   rO   )r   r   rw   r[   r   r   r   _find_and_load  s   
r   r   c                 C   s,   	 t | || |dkrt| ||} t| tS r   )r   r   r   _gcd_importr   r   r   r   r     s
   
r   	recursivec                C   s   	 |D ]h}t |ts!|r| jd }nd}td| dt|j |dkr6|s5t| dr5t| | j|dd qt| |skd	| j|}zt	|| W q t
yj } z|j|kretj|td ureW Y d }~q d }~ww q| S )
Nz.__all__z``from list''zItem in z must be str, not *__all__Tr  r   )r   r   r
   r   r   r   _handle_fromlistr  r8   rR   r   r   r   rr   r*   r   )rw   fromlistr   r  xwhere	from_nameexcr   r   r   r    s8   	




r  c                 C   s   	 |  d}|  d}|d ur*|d ur(||jkr(tjd|d|jdtdd |S |d ur1|jS tjdtdd | d	 }d
| vrH|dd }|S )Nr   rz   z __package__ != __spec__.parent (z != )   )
stacklevelzYcan't resolve package from __spec__ or __package__, falling back on __name__ and __path__r
   r   r   r   )r*   r   rn   ro   r   r   )globalsr   rv   r   r   r   _calc___package__B  s,   

r  r   c           	      C   s   	 |dkr
t | }n|d ur|ni }t|}t | ||}|sK|dkr+t | dd S | s/|S t| t| dd  }tj|jd t|j|   S t|drVt||t S |S )Nr   r   r   )	r   r  	partitionr   r   rr   r
   r   r  )	r   r  localsr  r   rw   globals_r   cut_offr   r   r   
__import__]  s    


r  c                 C   s&   t | }|d u rtd|  t|S )Nzno built-in module named )r   r   r`   r   )r   rv   r   r   r   _builtin_from_name  s   
r  c           
      C   s   	 |a | att}tj D ]$\}}t||r2|tjv rt}n	t |r't	}nqt
||}t|| qtjt }dD ]}|tjvrFt|}	ntj| }	t|||	 q:d S )N)r   rn   rN   )rG   r   r   rr   itemsr   r_   r   rk   r   r   r   r
   r  r   )

sys_module_imp_modulemodule_typer   rw   r   rv   self_modulebuiltin_namebuiltin_moduler   r   r   _setup  s*   








r  c                 C   s(   	 t | | tjt tjt d S r   )r  r   r   r   r   r   )r  r  r   r   r   _install  s   
r  c                  C   s"   	 dd l } | a| tjt  d S r   )_frozen_importlib_externalr   r  r   rr   r
   )r  r   r   r   _install_external_importers  s   r   r   r   r   )NNr   r   )5r   r   rn   rN   r   r   r   rI   r)   r5   r   r   r=   r?   rB   rO   rR   r\   rh   rm   rx   r   r   rq   r   r   r   r   rs   r   r   rt   r   r   r   r   r   r   r   _ERR_MSG_PREFIXr   r   objectr   r   r   r  r  r  r  r  r  r   r   r   r   r   <module>   sh    	M%e
-H$-PU	

/ 
%
%#