o
    ¯N itJ  ã                   @   s\   d dl mZmZ d dlZd dlZd dlZG dd„ deƒZG dd„ deƒZdd„ Zd	d
„ Z	dS )é    )Ú	AstToGAstÚ	GAstToAstNc                   @   sT  e Zd Zejjdkrdd„ Zdd„ Zdd„ Zejjdk r d	d
„ Z	ejjdk r2dd„ Z
dd„ Zdd„ Zejjdk rpdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zejjd5k r†d6d7„ Zdejj  kr’dk rœn nd8d„ Zd9d „ Zejjdk r¨d:d;„ Zd<S d<S )=Ú
Ast3ToGAsté   c                 C   ó*   t  |  |j¡|  |j¡d ¡}t  ||¡S ©N)ÚgastÚTypeVarÚ_visitÚnameÚboundÚcopy_location©ÚselfÚnodeÚnew_node© r   ú=/home/ubuntu/.local/lib/python3.10/site-packages/gast/ast3.pyÚvisit_TypeVar
   ó   

ýzAst3ToGAst.visit_TypeVarc                 C   ó    t  |  |j¡d ¡}t  ||¡S r   )r   ÚTypeVarTupler
   r   r   r   r   r   r   Úvisit_TypeVarTuple   ó
   
þzAst3ToGAst.visit_TypeVarTuplec                 C   r   r   )r   Ú	ParamSpecr
   r   r   r   r   r   r   Úvisit_ParamSpec   r   zAst3ToGAst.visit_ParamSpecé
   c                 C   s8   t  |  |j¡|  |j¡¡}d  |_|_d  |_|_|S r   )	r   Úaliasr
   r   ÚasnameÚlinenoÚ
col_offsetÚ
end_linenoÚend_col_offsetr   r   r   r   Úvisit_alias"   s   

þzAst3ToGAst.visit_aliasé	   c                 C   s$   t  |  |j¡t  ¡ ¡}t  ||¡S r   )r   ÚTupler
   ÚdimsÚLoadr   r   r   r   r   Úvisit_ExtSlice-   s   zAst3ToGAst.visit_ExtSlicec                 C   s   |   |j¡S r   )r
   Úvalue)r   r   r   r   r   Úvisit_Index1   ó   zAst3ToGAst.visit_Indexc                 C   s:   t  |  |j¡|  |j¡d ¡}t  ||¡ d  |_|_|S r   )r   ÚAssignr
   Útargetsr)   r   r!   r"   r   r   r   r   Úvisit_Assign4   s   

ýzAst3ToGAst.visit_Assigné   c                 C   s   t  |  |j¡g ¡}|S r   )r   ÚModuler
   Úbodyr   r   r   r   Úvisit_Module@   s
   
þzAst3ToGAst.visit_Modulec                 C   ó   t  |jd ¡}t  ||¡S r   )r   ÚConstantÚnr   r   r   r   r   Ú	visit_NumG   ó
   þzAst3ToGAst.visit_Numc                 C   s(   t  td ¡}t  ||¡ d  |_|_|S r   )r   r4   ÚEllipsisr   r!   r"   r   r   r   r   Úvisit_EllipsisN   s   þzAst3ToGAst.visit_Ellipsisc                 C   r3   r   ©r   r4   Úsr   r   r   r   r   Ú	visit_StrW   r7   zAst3ToGAst.visit_Strc                 C   r3   r   r:   r   r   r   r   Úvisit_Bytes^   r7   zAst3ToGAst.visit_Bytesc              	   C   óJ   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d g ¡}t  ||¡S r   )	r   ÚFunctionDefr
   r   Úargsr1   Údecorator_listÚreturnsr   r   r   r   r   Úvisit_FunctionDefe   ó   




ù	zAst3ToGAst.visit_FunctionDefc              	   C   r>   r   )	r   ÚAsyncFunctionDefr
   r   r@   r1   rA   rB   r   r   r   r   r   Úvisit_AsyncFunctionDefq   rD   z!Ast3ToGAst.visit_AsyncFunctionDefc                 C   ó>   t  |  |j¡|  |j¡|  |j¡|  |j¡d ¡}t  ||¡S r   )r   ÚForr
   ÚtargetÚiterr1   Úorelser   r   r   r   r   Ú	visit_For}   ó   



ûzAst3ToGAst.visit_Forc                 C   rG   r   )r   ÚAsyncForr
   rI   rJ   r1   rK   r   r   r   r   r   Úvisit_AsyncFor‡   rM   zAst3ToGAst.visit_AsyncForc                 C   r   r   )r   ÚWithr
   Úitemsr1   r   r   r   r   r   Ú
visit_With‘   r   zAst3ToGAst.visit_Withc                 C   r   r   )r   Ú	AsyncWithr
   rQ   r1   r   r   r   r   r   Úvisit_AsyncWith™   r   zAst3ToGAst.visit_AsyncWithc                 C   sº   t jjdk r<|jrt |  |j¡t ¡ ¡}t ||¡ |g}ng }|j	r9t 
d |  |j	¡¡}t ||j	¡ |g}ng }ng  }}t |  |j¡|  |j¡| |  |j¡| ¡}t ||¡S )Né   )ÚsysÚversion_infoÚminorÚstarargsr   ÚStarredr
   r'   r   ÚkwargsÚkeywordÚCallÚfuncr@   Úkeywords)r   r   ÚstarÚstarredÚkwr[   r   r   r   r   Ú
visit_Call¡   s(   ÿ
ýzAst3ToGAst.visit_Callc                 C   sR   |j d u rt d d ¡}n|j du rt dd ¡}n|j du r#t dd ¡}t ||¡S )NTF)r)   r   r4   r   r   r   r   r   Úvisit_NameConstant»   s   


zAst3ToGAst.visit_NameConstantc                 C   sR   t  |  |j¡g |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  	||¡S r   )
r   Ú	argumentsr
   r@   ÚvarargÚ
kwonlyargsÚkw_defaultsÚkwargÚdefaultsr   r   r   r   r   Úvisit_argumentsÄ   s   





ù	zAst3ToGAst.visit_argumentsc                 C   s&   t  |j|  |j¡d d ¡}t ||¡S r   )r   ÚNameÚidr
   ÚctxÚastr   r   r   r   r   Ú
visit_NameÐ   s   
üzAst3ToGAst.visit_Namec                 C   sH   t jjdk r	d }n|  |j¡}t |jt ¡ |  |j	¡|¡}t
 ||¡S ©Nr/   )rV   rW   rX   r
   Útype_commentr   rl   ÚargÚParamÚ
annotationro   r   )r   r   Ú	extra_argr   r   r   r   Ú	visit_argÙ   s   
üzAst3ToGAst.visit_argc              	   C   sL   |j r!t |  |j¡t |j t ¡ d d ¡|  |j¡¡}t 	||¡S |  
|¡S r   )r   r   ÚExceptHandlerr
   Útyperl   ÚStorer1   ro   r   Úgeneric_visitr   r   r   r   Úvisit_ExceptHandlerç   s   

ý
zAst3ToGAst.visit_ExceptHandleré   c                 C   s6   t j|  |j¡|  |j¡|  |j¡dd}t ||¡S )Nr   )rI   rJ   ÚifsÚis_async)r   Úcomprehensionr
   rI   rJ   r~   ro   r   r   r   r   r   Úvisit_comprehensionó   s   


üzAst3ToGAst.visit_comprehensionc              
   C   óR   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡g ¡}t  	||¡S r   )
r   r?   r
   r   r@   r1   rA   rB   rr   r   r   r   r   r   rC   ý   ó   





ù	c              
   C   r‚   r   )
r   rE   r
   r   r@   r1   rA   rB   rr   r   r   r   r   r   rF   	  rƒ   c              	   C   sH   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡g ¡}t  ||¡S r   )	r   ÚClassDefr
   r   Úbasesr_   r1   rA   r   r   r   r   r   Úvisit_ClassDef  s   




úzAst3ToGAst.visit_ClassDefN) Ú__name__Ú
__module__Ú__qualname__rV   rW   rX   r   r   r   r#   r(   r*   r.   r2   r6   r9   r<   r=   rC   rF   rL   rO   rR   rT   rc   rd   rk   rp   rw   r|   r   r†   r   r   r   r   r      sJ    		

		
	þr   c                   @   sN  e Zd Zejjdkrdd„ Zdd„ Zdd„ Zejjdk r d	d
„ Z	ejjdk r*dd„ Z
dd„ Zejjdk r<dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejjdk rWdd„ Zdd„ Zn"ejjdk ryd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d„ Zdejj  kr…dk r‹n nd-d„ Zdejj  kr—dk r¡n nd.d!„ Zd/d#„ Zd0d1„ Zd2S )3Ú
GAstToAst3r   c                 C   ó(   t  |  |j¡|  |j¡¡}t  ||¡S r   )ro   r	   r
   r   r   r   r   r   r   r   r   %  ó
   

þzGAstToAst3.visit_TypeVarc                 C   ó   t  |  |j¡¡}t  ||¡S r   )ro   r   r
   r   r   r   r   r   r   r   ,  ó   
ÿzGAstToAst3.visit_TypeVarTuplec                 C   r   r   )ro   r   r
   r   r   r   r   r   r   r   2  rŽ   zGAstToAst3.visit_ParamSpecr   c                 C   s    t  |  |j¡|  |j¡¡}|S r   )ro   r   r
   r   r   r   r   r   r   r#   9  s
   

þzGAstToAst3.visit_aliasr$   c                    sÌ   dd„ ‰ t |jtjƒrBtdd„ |jjD ƒƒr(t ‡ fdd„|  |jj¡D ƒ¡}n"t |  |jj¡t 	¡ ¡}t 
||j¡ t |¡}nˆ |  |j¡ƒ}t 
||j¡ t |  |j¡||  |j¡¡}t 
||¡S )Nc                 S   s   t | tjƒr| S t | ¡S r   )Ú
isinstancero   ÚSliceÚIndex)r;   r   r   r   Úadjust_sliceB  s   
z0GAstToAst3.visit_Subscript.<locals>.adjust_slicec                 s   s    | ]	}t |tjƒV  qd S r   )r   r   Úslice)Ú.0Úeltr   r   r   Ú	<genexpr>H  s   € z-GAstToAst3.visit_Subscript.<locals>.<genexpr>c                    s   g | ]}ˆ |ƒ‘qS r   r   )r”   Úx©r’   r   r   Ú
<listcomp>J  s    z.GAstToAst3.visit_Subscript.<locals>.<listcomp>)r   r“   r   r%   ÚanyÚeltsro   ÚExtSlicer
   r'   r   r‘   Ú	Subscriptr)   rn   )r   r   Ú	new_slicer)   r   r   r˜   r   Úvisit_SubscriptA  s&   
ÿÿ

ýzGAstToAst3.visit_Subscriptc                 C   r‹   r   )ro   r,   r
   r-   r)   r   r   r   r   r   r.   [  s
   

þzGAstToAst3.visit_Assignr/   c                 C   s   t  |  |j¡¡}|S r   )ro   r0   r
   r1   r   r   r   r   r2   e  s   zGAstToAst3.visit_Modulec                 C   s˜   |j d u rt |j ¡}n:|j tu rt ¡ }n0t|j tƒr#t |j ¡}n#t|j tttfƒr3t 	|j ¡}nt|j t
ƒr@t |j ¡}nt |j ¡}t ||¡S r   )r)   ro   ÚNameConstantr8   r   ÚboolÚintÚfloatÚcomplexÚNumÚstrÚStrÚBytesr   r   r   r   r   Úvisit_Constanti  s   


zGAstToAst3.visit_Constantc                 C   s^   |d u rd S t jjdk rtƒ }n|  |j¡f}tj|  |j¡|  |j	¡g|¢R Ž }t 
||¡S rq   )rV   rW   rX   Útupler
   rr   ro   rs   rm   ru   r   ©r   r   Ú
extra_argsr   r   r   r   Ú	_make_argx  s   

þýzGAstToAst3._make_argc                 C   r‹   r   )ro   rl   r
   rm   rn   r   r   r   r   r   rp   ˆ  rŒ   zGAstToAst3.visit_Namec                 C   s>   |j rt |  |j¡|j j|  |j¡¡}t ||¡S |  |¡S r   )	r   ro   rx   r
   ry   rm   r1   r   r{   r   r   r   r   r|     s   

ý
zGAstToAst3.visit_ExceptHandlerrU   c              	   C   s¸   |j rt|j d tjƒr|j d d… }|j d j}n|j }d }|jr8|jd jd u r8|jd d… }|jd j}n|j}d }t |  	|j
¡|  	|¡|  	|¡|  	|¡|  	|¡¡}t ||¡S )Néÿÿÿÿ)r@   r   r   rZ   r)   r_   rs   ro   r]   r
   r^   r   )r   r   r@   rY   r_   r[   r   r   r   r   rc   ›  s$   
ûzGAstToAst3.visit_Callc              	   C   sV   |   |¡ tj|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡d d d}t 	||¡S )N)r   r…   r_   r1   rA   rY   r[   )
r{   ro   r„   r
   r   r…   r_   r1   rA   r   r   r   r   r   r†   ³  s   





ù	zGAstToAst3.visit_ClassDefc              	   C   óF   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡S r   )	ro   r?   r
   r   r@   r1   rA   rB   r   r   r   r   r   rC   Â  ó   




ûzGAstToAst3.visit_FunctionDefc              	   C   r¯   r   )	ro   rE   r
   r   r@   r1   rA   rB   r   r   r   r   r   rF   Ì  r°   z!GAstToAst3.visit_AsyncFunctionDefc                 C   s<   t  |  |j¡|  |j¡|  |j¡|  |j¡¡}t  ||¡S r   )ro   rH   r
   rI   rJ   r1   rK   r   r   r   r   r   rL   Ö  s   



üzGAstToAst3.visit_Forc                 C   rG   r   )ro   rN   r
   rI   rJ   r1   rK   r   r   r   r   r   rO   ß  rM   zGAstToAst3.visit_AsyncForc                 C   r‹   r   )ro   rP   r
   rQ   r1   r   r   r   r   r   rR   é  rŒ   zGAstToAst3.visit_Withc                 C   r‹   r   )ro   rS   r
   rQ   r1   r   r   r   r   r   rT   ð  rŒ   zGAstToAst3.visit_AsyncWithc                 C   s2   t  |  |j¡|  |j¡|  |j¡¡}t  ||¡S r   )ro   r]   r
   r^   r@   r_   r   r   r   r   r   rc   ÷  s   


ýc              	   C   r¯   r   )	ro   r„   r
   r   r…   r_   r1   rA   r   r   r   r   r   r†   ÿ  r°   c              
   C   óP   t  |  |j¡|  |j¡|  |j¡|  |j¡|  |j¡|  |j¡¡}t  	||¡S r   )
ro   r?   r
   r   r@   r1   rA   rB   rr   r   r   r   r   r   rC   
  ó   





úc              
   C   r±   r   )
ro   rE   r
   r   r@   r1   rA   rB   rr   r   r   r   r   r   rF     r²   c                    s¨   ˆ   |j¡‡ fdd„|jD ƒˆ  |j¡ˆ   |j¡ˆ  |j¡g}tjj	dkrAt
j‡ fdd„|jD ƒ‡ fdd„|jD ƒg|¢R Ž }|S t
j‡ fdd„|jD ƒg|¢R Ž }|S )Nc                    ó   g | ]}ˆ   |¡‘qS r   ©r­   ©r”   r5   ©r   r   r   r™   $  ó    z.GAstToAst3.visit_arguments.<locals>.<listcomp>r/   c                    r³   r   r´   )r”   rs   r¶   r   r   r™   *  r·   c                    r³   r   r´   rµ   r¶   r   r   r™   +  r·   c                    r³   r   r´   rµ   r¶   r   r   r™   0  r·   )r­   rf   rg   r
   rh   ri   rj   rV   rW   rX   ro   re   Úposonlyargsr@   r«   r   r¶   r   rk   "  s(   



üþý
üÿþzGAstToAst3.visit_argumentsN)r‡   rˆ   r‰   rV   rW   rX   r   r   r   r#   rŸ   r.   r2   r©   r­   rp   r|   rc   r†   rC   rF   rL   rO   rR   rT   rk   r   r   r   r   rŠ   #  sB    



	

rŠ   c                 C   ó   t ƒ  | ¡S r   )r   Úvisit©r   r   r   r   Úast_to_gast6  r+   r¼   c                 C   r¹   r   )rŠ   rº   r»   r   r   r   Úgast_to_ast:  r+   r½   )
Ú	gast.astnr   r   r   ro   rV   r   rŠ   r¼   r½   r   r   r   r   Ú<module>   s        