o
    øT·jÂ  ã                   @  s”   d dl mZ dZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d!d	d
„Zd"dd„Zd#dd„Zd$dd„Zd%dd„Zd&dd „ZdS )'é    )Úannotations)Úfix_package_namesÚinstall_lazy_importerÚset_deprecated_aliasesN)Úimport_module)Ú
ModuleType)ÚAnyÚreturnÚboolc                    s¦   t  d¡j‰ˆd ‰ˆd ‰t jˆ } t| ƒ\‰‰ ‰tˆƒ‰ˆd= ˆd= ˆs*ˆ s*dS d‡ ‡‡‡‡‡fdd„}d‡fdd„}|ˆd< |ˆd< ˆ dd ¡ ˆ dd ¡ dS )Né   Ú__name__Ú.ÚTYPE_CHECKINGr   FÚnameÚstrr	   r   c                   sÂ   ˆ   | ¡ }rtˆ| |ƒ | dd¡\}}n'| ˆv r"d|  d}}nzˆ|  \}}W n ty<   tdˆ›d| ›�ƒd ‚w t|ˆƒ}|rIt||ƒn|}t|ddƒ ˆ¡r[| ˆ vr[ˆ|_|ˆ| < |S )Nr   r   Ú úmodule ú has no attribute Ú
__module__)	ÚgetÚemit_deprecation_warningÚrsplitÚKeyErrorÚAttributeErrorr   ÚgetattrÚ
startswithr   )r   Únew_nameÚ
target_modÚtarget_attrÚimportedÚvalue)Údeprecated_aliasesÚlazy_mapÚmodule_globalsÚmodule_nameÚmodule_prefixÚsubmodule_names© úT/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/anyio/_lazyimport.pyÚ__getattr__!   s,   ÿþÿ
ÿz*install_lazy_importer.<locals>.__getattr__ú	list[str]c                     s   ˆ S ©Nr'   r'   )Únamesr'   r(   Ú__dir__<   s   z&install_lazy_importer.<locals>.__dir__r-   r)   r   r   T©r   r   r	   r   )r	   r*   )ÚsysÚ	_getframeÚ	f_globalsÚmodulesÚ_build_lazy_mapÚsortedÚpop)Úmoduler)   r-   r'   )r!   r"   r#   r$   r%   r,   r&   r(   r      s"   
r   ÚNonec                  C  sl   t  d¡j} | d d }| tj= |  ¡ D ]}t|ddƒ }r3| |¡r3| d¡}d 	dd„ |D ƒ¡|_
qd S )Nr   r   r   r   r   c                 s  s   � | ]
}|  d ¡s|V  qdS )Ú_N)r   )Ú.0Úpartr'   r'   r(   Ú	<genexpr>N   s   € 
ÿ
ÿz$fix_package_names.<locals>.<genexpr>)r/   r0   r1   r   r   Úvaluesr   r   ÚsplitÚjoinr   )r#   r%   r    ÚmodnameÚpartsr'   r'   r(   r   F   s   



ÿ€ür   r$   r   r   Útargetc                 C  s(   t jd| › d|› d|› d�tdd� d S )NzThe r   z alias is deprecated, use z	 instead.é   )Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarning)r$   r   rA   r'   r'   r(   r   S   s
   
ýr   Úaliasesúdict[str, str]c                   s@   t  d¡j}|d ‰|tj= d
‡ ‡fdd„}|t jˆ jd	< d S )Nr   r   r   r   r	   r   c                   s`   zˆ |  }W n t y   tdˆ›d| ›�ƒd ‚w tˆ| |ƒ | dd¡\}}t|ƒ}t||ƒS )Nr   r   r   r   )r   r   r   r   r   r   )r   rA   Útarget_modnameÚattrnamer6   ©rG   r$   r'   r(   r)   `   s   ÿþÿ
z+set_deprecated_aliases.<locals>.__getattr__r)   r.   )r/   r0   r1   r   r   r2   Ú__dict__)rG   r#   r)   r'   rK   r(   r   [   s
   r   r6   r   ú<tuple[dict[str, tuple[str, str]], dict[str, str], list[str]]c                 C  sÜ  zt  | ¡}W n ty   i i g f Y S w t|| jpddtjƒ}t|tjƒs)J ‚i }i }g }|j	D ]¶}t|tj
ƒr?t|jƒs@q2|j	D ]¤}| tjd˜ r†  |jd u r_| dd„ |jD ƒ¡ qCd|j |jpgd }|jD ]}	|	jdkrwtdƒ‚|	jp||	j}
||	jf||
< qlqC tjd˜ ræ t|jtjƒrç|j}t|jtjƒrå|jjd	krå|jd
 }t|tjƒs±J ‚t|j|jdd�D ]*\}}t|tj ƒsÆJ ‚t|jt!ƒsÎJ ‚t|tj ƒsÖJ ‚t|jt!ƒsÞJ ‚|j||j< qºqC qCq2|||fS )Nr   Úexecr'   c                 s  s   � | ]}|j V  qd S r+   )r   )r9   Úaliasr'   r'   r(   r;   †   s   € z"_build_lazy_map.<locals>.<genexpr>r   Ú*zstar imports not supportedr   r   T)Ústrict)"ÚinspectÚ	getsourceÚOSErrorÚcompileÚ__file__ÚastÚPyCF_ONLY_ASTÚ
isinstanceÚModuleÚbodyÚIfÚ_is_type_checking_blockÚtestÚ
ImportFromr6   Úextendr,   Úlevelr   ÚRuntimeErrorÚasnameÚExprr    ÚCallÚfuncÚNameÚidÚargsÚDictÚzipÚkeysr<   ÚConstantr   )r6   ÚsourceÚtreeÚoutr!   r&   ÚnodeÚstmtÚbaserO   ÚexportedÚcallÚarg0Úkeyr    r'   r'   r(   r3   p   sX   ÿ




ûûÿ
€ó€ó
r3   r^   úast.ASTc                 C  sp   t | tjƒsdS | jd }| tjd˜ r  |jdkS  tjd˜ r4 t |jtjƒo3|jjdko3|jdkS  	 dS )NFr   r'   r   Útyping)	rY   rW   ÚBoolOpr<   rg   rh   Ú	Attributer    Úattr)r^   Úsubtestr'   r'   r(   r]   ¡   s    

ÿ
ÿýÿr]   )r	   r
   )r	   r7   )r$   r   r   r   rA   r   r	   r7   )rG   rH   r	   r7   )r6   r   r	   rM   )r^   rx   r	   r
   )Ú
__future__r   Ú__all__rW   rR   r/   rD   Ú	importlibr   Útypesr   ry   r   r   r   r   r   r3   r]   r'   r'   r'   r(   Ú<module>   s    

4


1