a
    ze                     @   s  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d.d/ Zd0d1 Zd2d3 Zd4d5 ZG d6d7 d7ZG d8d9 d9ZG d:d; d;Zd<d= Zd>d? Z d^d@dAZ!dBdC Z"dDZ#e#dE Z$dFdG Z%e& Z'dHdI Z(d_dKdLZ)d&dMdNdOZ*dPdQ Z+d`dSdTZ,dUdV Z-dWdX Z.dYdZ Z/d[d\ Z0d S )aNc                 C   s8   dD ] }t ||rt| |t|| q| j|j d S )N)
__module____name____qualname____doc__)hasattrsetattrgetattr__dict__update)newoldreplace r   */usr/lib/python3.9/importlib/_bootstrap.py_wrap   s    
r   c                 C   s   t t| S N)typesysnamer   r   r   _new_module#   s    r   c                   @   s   e Zd ZdS )_DeadlockErrorN)r   r   r   r   r   r   r   r   0   s   r   c                   @   s4   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__:   s    

z_ModuleLock.__init__c                 C   sX   t  }| j}t }t|}|d u r*dS |j}||kr<dS ||v rHdS || qd S )NFT)r   	get_identr   set_blocking_ongetadd)r"   metidseenr   r   r   r   has_deadlockB   s    
z_ModuleLock.has_deadlockc                 C   s   t  }| t|< z| j~ | jdks.| j|krZ|| _|  jd7  _W d    W t|= dS |  rntd|  | j	dr|  j
d7  _
W d    n1 s0    Y  | j	  | j  qW t|= nt|= 0 d S )Nr      Tzdeadlock detected by %rF)r   r$   r&   r   r   r   r,   r   r   acquirer    releaser"   r*   r   r   r   r.   W   s"    	,
z_ModuleLock.acquirec                 C   s   t  }| j^ | j|kr"td|  jd8  _| jdkr^d | _| jr^|  jd8  _| j  W d    n1 sr0    Y  d S )Ncannot release un-acquired lockr-   r   )	r   r$   r   r   RuntimeErrorr   r    r   r/   r0   r   r   r   r/   p   s    

z_ModuleLock.releasec                 C   s   d | jt| S )Nz_ModuleLock({!r}) at {}formatr   idr"   r   r   r   __repr__}   s    z_ModuleLock.__repr__N)r   r   r   r#   r,   r.   r/   r7   r   r   r   r   r   4   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#      s    z_DummyModuleLock.__init__c                 C   s   |  j d7  _ dS )Nr-   T)r   r6   r   r   r   r.      s    z_DummyModuleLock.acquirec                 C   s$   | j dkrtd|  j d8  _ d S )Nr   r1   r-   )r   r2   r6   r   r   r   r/      s    
z_DummyModuleLock.releasec                 C   s   d | jt| S )Nz_DummyModuleLock({!r}) at {}r3   r6   r   r   r   r7      s    z_DummyModuleLock.__repr__N)r   r   r   r#   r.   r/   r7   r   r   r   r   r8      s   r8   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#      s    z_ModuleLockManager.__init__c                 C   s   t | j| _| j  d S r   )_get_module_lockr:   r;   r.   r6   r   r   r   	__enter__   s    z_ModuleLockManager.__enter__c                 O   s   | j   d S r   )r;   r/   )r"   argskwargsr   r   r   __exit__   s    z_ModuleLockManager.__exit__N)r   r   r   r#   r=   r@   r   r   r   r   r9      s   r9   c                 C   s   t   zpzt|   }W n ty.   d }Y n0 |d u rntd u rJt| }nt| }| fdd}t||t| < W t 	  n
t 	  0 |S )Nc                 S   s8   t   z t|| u rt|= W t   n
t   0 d S r   )_impacquire_lock_module_locksr'   release_lock)refr   r   r   r   cb   s
    z_get_module_lock.<locals>.cb)
rA   rB   rC   KeyErrorr   r8   r   _weakrefrE   rD   )r   r   rF   r   r   r   r<      s    

r<   c                 C   s4   t | }z|  W n ty&   Y n
0 |  d S r   )r<   r.   r   r/   )r   r   r   r   r   _lock_unlock_module   s    rI   c                 O   s   | |i |S r   r   )fr>   kwdsr   r   r   _call_with_frames_removed   s    rL   r-   )	verbosityc                G   s6   t jj|kr2| dsd|  } t| j| t jd d S )N)#zimport z# )file)r   flagsverbose
startswithprintr4   stderr)messagerM   r>   r   r   r   _verbose_message   s    
rV   c                    s    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ImportErrorr4   r"   fullnamefxnr   r   _requires_builtin_wrapper   s
    

z4_requires_builtin.<locals>._requires_builtin_wrapperr   )r]   r^   r   r\   r   _requires_builtin   s    
r`   c                    s    fdd}t |  |S )Nc                    s&   t |std||d | |S Nz{!r} is not a frozen moduler   )rA   	is_frozenrY   r4   rZ   r\   r   r   _requires_frozen_wrapper   s
    

z2_requires_frozen.<locals>._requires_frozen_wrapperr_   )r]   rc   r   r\   r   _requires_frozen   s    
rd   c                 C   s>   t || }|tjv r2tj| }t|| tj| S t|S d S r   )spec_from_loaderr   modules_exec_load)r"   r[   specmoduler   r   r   _load_module_shim  s    




rk   c                 C   s   t | dd }t|dr6z|| W S  ty4   Y n0 z
| j}W n tyR   Y n0 |d urdt|S z
| j}W n ty   d}Y n0 z
| j}W n8 ty   |d u rd	| Y S d	|| Y S Y n0 d	||S d S )N
__loader__module_repr?<module {!r}><module {!r} ({!r})><module {!r} from {!r}>)
r   r   rm   	Exception__spec__AttributeError_module_repr_from_specr   __file__r4   )rj   loaderri   r   filenamer   r   r   _module_repr  s.    




ry   c                   @   sn   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   rw   r{   r|   submodule_search_locations_set_fileattr_cached)r"   r   rw   r{   r|   r}   r   r   r   r#   _  s    zModuleSpec.__init__c                 C   sf   d | jd | jg}| jd ur4|d | j | jd urP|d | j d | jjd|S )Nz	name={!r}zloader={!r}zorigin={!r}zsubmodule_search_locations={}z{}({})z, )	r4   r   rw   r{   appendr   	__class__r   join)r"   r>   r   r   r   r7   k  s    



zModuleSpec.__repr__c                 C   sj   | j }zH| j|jkoL| j|jkoL| j|jkoL||j koL| j|jkoL| j|jkW S  tyd   t Y S 0 d S r   )r   r   rw   r{   cachedhas_locationrt   NotImplemented)r"   othersmslr   r   r   __eq__u  s    



zModuleSpec.__eq__c                 C   s:   | j d u r4| jd ur4| jr4td u r&tt| j| _ | j S r   )r   r{   r   _bootstrap_externalNotImplementedError_get_cachedr6   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 d S )N.r   )r   r   
rpartitionr6   r   r   r   parent  s    
zModuleSpec.parentc                 C   s   | j S r   )r   r6   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#   r7   r   propertyr   setterr   r   r   r   r   r   rz   :  s   %




rz   r{   r}   c                C   s   t |drJtd u rttj}|d u r0|| |dS |r8g nd }|| ||dS |d u rt |drz|| }W q ty   d }Y q0 nd}t| |||dS )Nget_filename)rw   )rw   r   r}   Fr   )r   r   r   spec_from_file_locationr}   rY   rz   )r   rw   r{   r}   r   searchr   r   r   re     s$    

re   c                 C   s*  z
| j }W n ty   Y n0 |d ur*|S | j}|d u rVz
| j}W n tyT   Y n0 z
| j}W n tyv   d }Y n0 |d u r|d u rz
|j}W q ty   d }Y q0 n|}z
| j}W n ty   d }Y n0 zt| j}W n ty   d }Y n0 t	|||d}|d u rdnd|_
||_||_|S )Nr{   FT)rs   rt   r   rl   rv   _ORIGIN
__cached__list__path__rz   r   r   r   )rj   rw   r{   ri   r   locationr   r   r   r   r   _spec_from_module  sH    







r   Foverridec                C   s  |st |dd d u r4z| j|_W n ty2   Y n0 |sHt |dd d u r| j}|d u r| jd urtd u rlttj}|	|}| j|_
|| _d |_z
||_W n ty   Y n0 |st |dd d u rz| j|_W n ty   Y n0 z
| |_W n ty   Y n0 |st |dd d u rF| jd urFz| j|_W n tyD   Y n0 | jr|sft |dd d u rz| j|_W n ty   Y n0 |st |dd d u r| jd urz| j|_W n ty   Y n0 |S )Nr   rl   __package__r   rv   r   )r   r   r   rt   rw   r   r   r   _NamespaceLoader__new___pathrv   rl   r   r   rs   r   r   r{   r   r   )ri   rj   r   rw   r   r   r   r   _init_module_attrs  s`    



r   c                 C   sR   d }t | jdr| j| }nt | jdr2td|d u rDt| j}t| | |S )Ncreate_moduleexec_modulezBloaders that define exec_module() must also define create_module())r   rw   r   rY   r   r   r   ri   rj   r   r   r   module_from_spec.  s    

r   c                 C   sj   | j d u rdn| j }| jd u rB| jd u r2d|S d|| jS n$| jrVd|| jS d| j | jS d S )Nrn   ro   rp   rq   <module {!r} ({})>)r   r{   rw   r4   r   )ri   r   r   r   r   ru   ?  s    


ru   c              
   C   s   | j }t| tj||ur6d|}t||dz| jd u rj| jd u rZtd| j dt	| |dd n4t	| |dd t
| jds| j| n| j| W tj| j }|tj| j < ntj| j }|tj| j < 0 W d    n1 s0    Y  |S )Nzmodule {!r} not in sys.modulesr   missing loaderTr   r   )r   r9   r   rf   r'   r4   rY   rw   r   r   r   load_moduler   pop)ri   rj   r   msgr   r   r   rg   P  s&    



,rg   c                 C   s  z| j | j W n4   | jtjv r@tj| j}|tj| j<  Y n0 tj| j}|tj| j< t|dd d u rz| j |_W n ty   Y n0 t|dd d u rz(|j	|_
t|ds| jdd |_
W n ty   Y n0 t|dd d u rz
| |_W n ty   Y n0 |S )Nrl   r   r   r   r   rs   )rw   r   r   r   rf   r   r   rl   rt   r   r   r   r   rs   r   r   r   r   _load_backward_compatiblen  s6    

r   c                 C   s   | j d urt| j dst| S t| }d| _z|tj| j< z4| j d u r`| jd u rlt	d| jdn| j 
| W n0   ztj| j= W n ty   Y n0  Y n0 tj| j}|tj| j< td| j| j  W d| _nd| _0 |S )Nr   Tr   r   zimport {!r} # {!r}F)rw   r   r   r   _initializingr   rf   r   r   rY   r   rG   r   rV   r   r   r   r   _load_unlocked  s.    


r   c                 C   s6   t | j t| W  d    S 1 s(0    Y  d S r   )r9   r   r   )ri   r   r   r   rh     s    	rh   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   d| j dtj dS )Nz<module z (z)>)r   r   r   )rj   r   r   r   rm     s    zBuiltinImporter.module_reprNc                 C   s.   |d urd S t |r&t|| | jdS d S d S Nr   )rA   
is_builtinre   r   clsr[   pathtargetr   r   r   	find_spec  s
    
zBuiltinImporter.find_specc                 C   s   |  ||}|d ur|jS d S r   )r   rw   )r   r[   r   ri   r   r   r   find_module  s    	zBuiltinImporter.find_modulec                 C   s.   |j tjvr"td|j |j dttj|S rW   )r   r   rX   rY   r4   rL   rA   create_builtin)r"   ri   r   r   r   r     s
    zBuiltinImporter.create_modulec                 C   s   t tj| d S r   )rL   rA   exec_builtin)r"   rj   r   r   r   r     s    zBuiltinImporter.exec_modulec                 C   s   d S r   r   r   r[   r   r   r   get_code  s    zBuiltinImporter.get_codec                 C   s   d S r   r   r   r   r   r   
get_source  s    zBuiltinImporter.get_sourcec                 C   s   dS r~   r   r   r   r   r   r}     s    zBuiltinImporter.is_package)NN)N)r   r   r   r   staticmethodrm   classmethodr   r   r   r   r`   r   r   r}   rk   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   d | jtjS )Nr   )r4   r   r   r   )mr   r   r   rm   "  s    zFrozenImporter.module_reprNc                 C   s"   t |rt|| | jdS d S d S r   )rA   rb   re   r   r   r   r   r   r   +  s    
zFrozenImporter.find_specc                 C   s   t |r| S d S r   )rA   rb   )r   r[   r   r   r   r   r   2  s    zFrozenImporter.find_modulec                 C   s   d S r   r   )r   ri   r   r   r   r   ;  s    zFrozenImporter.create_modulec                 C   s@   | j j}t|s$td||dttj|}t|| j	 d S ra   )
rs   r   rA   rb   rY   r4   rL   get_frozen_objectexecr   )rj   r   coder   r   r   r   ?  s    

zFrozenImporter.exec_modulec                 C   s
   t | |S r   )rk   r   r   r   r   r   H  s    zFrozenImporter.load_modulec                 C   s
   t |S r   )rA   r   r   r   r   r   r   Q  s    zFrozenImporter.get_codec                 C   s   d S r   r   r   r   r   r   r   W  s    zFrozenImporter.get_sourcec                 C   s
   t |S r   )rA   is_frozen_packager   r   r   r   r}   ]  s    zFrozenImporter.is_package)NN)N)r   r   r   r   r   rm   r   r   r   r   r   r   rd   r   r   r}   r   r   r   r   r     s,   	



r   c                   @   s   e Zd Zdd Zdd ZdS )_ImportLockContextc                 C   s   t   d S r   )rA   rB   r6   r   r   r   r=   j  s    z_ImportLockContext.__enter__c                 C   s   t   d S r   )rA   rD   )r"   exc_type	exc_valueexc_tracebackr   r   r   r@   n  s    z_ImportLockContext.__exit__N)r   r   r   r=   r@   r   r   r   r   r   f  s   r   c                 C   s@   | d|d }t||k r$td|d }| r<d|| S |S )Nr   r-   z2attempted relative import beyond top-level packager   {}.{})rsplitlenrY   r4   )r   packagelevelbitsbaser   r   r   _resolve_names  s
    r   c                 C   s"   |  ||}|d u rd S t||S r   )r   re   )finderr   r   rw   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 ]}t ^ z
|j}W n6 t	y   t
|| |}|d u r|Y W d    q4Y n0 || ||}W d    n1 s0    Y  |d ur4|s| t jv rt j|  }z
|j}	W n t	y   | Y   S 0 |	d u r|  S |	  S q4|  S q4d S )Nz5sys.meta_path is None, Python is likely shutting downzsys.meta_path is empty)r   	meta_pathrY   	_warningswarnImportWarningrf   r   r   rt   r   rs   )
r   r   r   r   	is_reloadr   r   ri   rj   rs   r   r   r   
_find_spec  s6    

*




r   c                 C   sl   t | tstdt| |dk r,td|dkrTt |tsHtdn|sTtd| sh|dkrhtd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	TypeErrorr4   r   
ValueErrorrY   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 n0 ty   td | |}t|| dd Y n0 t	| |}|d u rtt| | dnt
|}|rtj| }|  dd }zt||| W n0 ty   d|d|}t|t Y n0 |S )Nr   r   z; {!r} is not a packager      zCannot set an attribute on z for child module )r   r   rf   rL   r   rt   _ERR_MSGr4   ModuleNotFoundErrorr   r   r   r   r   r   )	r   import_r   r   parent_moduler   ri   rj   childr   r   r   _find_and_load_unlocked  s4    







r   c                 C   s   t | > tj| t}|tu r8t| |W  d    S W d    n1 sL0    Y  |d u rtd| }t|| dt|  |S )Nz(import of {} halted; None in sys.modulesr   )	r9   r   rf   r'   _NEEDS_LOADINGr   r4   r   rI   )r   r   rj   rU   r   r   r   _find_and_load  s    
6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 ]}t |tsB|r"| jd }nd}td| dt|j q|dkrl|st| drt| | j|dd qt| |sd	| j|}zt	|| W q t
y } z6|j|krtj|td urW Y d }~q W Y d }~qd }~0 0 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   r4   rL   r   r   r   rf   r'   r   )rj   fromlistr   r   xwhere	from_nameexcr   r   r   r   	  s0    






r   c                 C   s   |  d}|  d}|d urR|d urN||jkrNtjd|d|jdtdd |S |d ur`|jS tjdtdd | d	 }d
| vr|dd }|S )Nr   rs   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   r   r   r   r   )globalsr   ri   r   r   r   _calc___package__.  s*    

r   r   c           	      C   s   |dkrt | }n$|d ur|ni }t|}t | ||}|s|dkrTt | dd S | s\|S t| t| dd  }tj|jd t|j|   S nt|drt||t S |S d S )Nr   r   r   )	r   r   	partitionr   r   rf   r   r   r   )	r   r   localsr   r   rj   globals_r   cut_offr   r   r   
__import__I  s    
 
r  c                 C   s&   t | }|d u rtd|  t|S )Nzno built-in module named )r   r   rY   r   )r   ri   r   r   r   _builtin_from_namen  s    
r  c           
      C   s   |a | att}tj D ]H\}}t||r|tjv r<t}nt |rt	}nqt
||}t|| qtjt }dD ].}|tjvrt|}	n
tj| }	t|||	 qrd S )N)r   r   rH   )rA   r   r   rf   itemsr   rX   r   rb   r   r   r   r   r  r   )

sys_module_imp_modulemodule_typer   rj   rw   ri   self_modulebuiltin_namebuiltin_moduler   r   r   _setupu  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   rf   r   )r  r   r   r   _install_external_importers  s    r  )NN)N)Nr   )NNr   r   )1r   r   r   rC   r&   r2   r   r   r8   r9   r<   rI   rL   rV   r`   rd   rk   ry   rz   re   r   r   r   ru   rg   r   r   rh   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>   s\   M%$e
-H%*KO		
/ 
%
%#