§
    ñyIfÍf  ã                  óÎ   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 er&ddlm
Z
 ddlmZ dd	lmZmZmZmZmZmZmZmZmZmZmZ d
Z G d„ d¦  «        Zdd„Z ed¦  «        ZdS )z+This module renders Astroid nodes as stringé    )ÚannotationsN)ÚIterator)ÚTYPE_CHECKING)Únodes)Úobjects)ÚConst)ÚMatchÚMatchAsÚ	MatchCaseÚ
MatchClassÚMatchMappingÚMatchOrÚMatchSequenceÚMatchSingletonÚ	MatchStarÚ
MatchValueÚUnknownú c                  ó  — e Zd ZdZd‚dƒd„Zd„d„Zd…d
„Zd†d‡d„Zd†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„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„d-„Z#d„d.„Z$d„d/„Z%d„d0„Z&d„d1„Z'd„d2„Z(d„d3„Z)d„d4„Z*d„d5„Z+d„d6„Z,d‹d:„Z-dŒd;„Z.d�d=„Z/d„d>„Z0d„d?„Z1d„d@„Z2d„dA„Z3d„dB„Z4d„dC„Z5d„dD„Z6d„dE„Z7d„dF„Z8d„dG„Z9d„dH„Z:d„dI„Z;d„dJ„Z<d„dK„Z=dŽdM„Z>d„dN„Z?d�dP„Z@d„dQ„ZAd„dR„ZBd„dS„ZCd„dT„ZDd„dU„ZEd„dV„ZFd„dW„ZGd„dX„ZHd„dY„ZId�d[„ZJd‘d]„ZKd’d_„ZLd„d`„ZMd„da„ZNd„db„ZOd„dc„ZPd„dd„ZQd„de„ZRd“dg„ZSd”di„ZTd•dk„ZUeVd–dm„¦   «         ZWd—do„ZXd˜dq„ZYd™ds„ZZdšdu„Z[d›dw„Z\dœdy„Z]dz„ Z^d{„ Z_d|„ Z`d}„ Zad~„ Zbd�d€„Zcd�S )žÚAsStringVisitorz?Visitor to render an Astroid node as a valid python code stringú    ÚindentÚstrc                ó   — || _         d S ©N©r   )Úselfr   s     úK/var/www/piapp/venv/lib/python3.11/site-packages/astroid/nodes/as_string.pyÚ__init__zAsStringVisitor.__init__*   s   € Ø!ˆŒˆˆó    Úreturnc                ó^   — |                      | ¦  «                             t          d¦  «        S )z.Makes this visitor behave as a simple functionú
)ÚacceptÚreplaceÚDOC_NEWLINE©r   Únodes     r   Ú__call__zAsStringVisitor.__call__-   s$   € à�{Š{˜4Ñ Ô ×(Ò(­°dÑ;Ô;Ð;r    Údoc_nodeúConst | Nonec                ó|   — |sdS d                      | j        |j                             dt          ¦  «        ¦  «        S )z7Stop newlines in docs being indented by self._stmt_listÚ z
{}"""{}"""r#   )Úformatr   Úvaluer%   r&   )r   r*   s     r   Ú_docs_dedentzAsStringVisitor._docs_dedent1   s@   € àð 	Ø�2à×$Ò$ØŒK˜œ×/Ò/°µkÑBÔBñ
ô 
ð 	
r    TÚstmtsÚlistÚboolc                ó®   ‡ — d                      d„ ˆ fd„|D ¦   «         D ¦   «         ¦  «        }|s|S ‰ j        |                     dd‰ j        z   ¦  «        z   S )z return a list of nodes to stringr#   c              3  ó   K  — | ]}|¯|V — Œ	d S r   © )Ú.0Únstrs     r   ú	<genexpr>z-AsStringVisitor._stmt_list.<locals>.<genexpr><   s;   è è € ð #
ð #
ØÀð#
Øð#
ð #
ð #
ð #
ð #
ð #
r    c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r6   ©r$   ©r7   Únr   s     €r   ú
<listcomp>z.AsStringVisitor._stmt_list.<locals>.<listcomp>=   s#   ø€ Ð<Ð<Ð<°˜aŸhšh t™nœnÐ<Ð<Ð<r    )Újoinr   r%   )r   r1   r   Ú	stmts_strs   `   r   Ú
_stmt_listzAsStringVisitor._stmt_list:   sz   ø€ àŸšð #
ð #
Ø<Ð<Ð<Ð<°eÐ<Ñ<Ô<ð#
ñ #
ô #
ñ 
ô 
ˆ	ð ð 	ØÐàŒ{˜Y×.Ò.¨t°T¸D¼KÑ5GÑHÔHÑHÐHr    Úis_leftc                óŒ   — |                       |||¦  «        rd|                     | ¦  «        › d�S |                     | ¦  «        S )z<Wrap child in parens only if required to keep same semanticsú(ú))Ú_should_wrapr$   )r   r(   ÚchildrB   s       r   Ú_precedence_parensz"AsStringVisitor._precedence_parensD   sK   € à×Ò˜T 5¨'Ñ2Ô2ð 	-Ø,�u—|’| DÑ)Ô)Ð,Ð,Ð,Ð,à�|Š|˜DÑ!Ô!Ð!r    c                ó¦   — |                      ¦   «         }|                      ¦   «         }||k    rdS ||k    r||                     ¦   «         k    rdS dS )z…Wrap child if:
        - it has lower precedence
        - same precedence with position opposite to associativity direction
        TF)Úop_precedenceÚop_left_associative)r   r(   rG   rB   Únode_precedenceÚchild_precedences         r   rF   zAsStringVisitor._should_wrapK   si   € ð
 ×,Ò,Ñ.Ô.ˆØ ×.Ò.Ñ0Ô0ÐàÐ-Ò-Ð-à�4ð Ð/Ò/Ð/Ø˜4×3Ò3Ñ5Ô5Ò5Ð5ð �4àˆur    c                ó<   — d|j                              | ¦  «        › �S )Nzawait ©r/   r$   r'   s     r   Úvisit_awaitzAsStringVisitor.visit_awaitc   s    € Ø1˜œ
×)Ò)¨$Ñ/Ô/Ð1Ð1Ð1r    c                ó2   — d|                       |¦  «        › �S ©Núasync )Ú
visit_withr'   s     r   Úvisit_asyncwithzAsStringVisitor.visit_asyncwithf   s   € Ø/˜Ÿš¨Ñ-Ô-Ð/Ð/Ð/r    c                ó2   — d|                       |¦  «        › �S rR   )Ú	visit_forr'   s     r   Úvisit_asyncforzAsStringVisitor.visit_asyncfori   s   € Ø.˜Ÿš tÑ,Ô,Ð.Ð.Ð.r    c                ó*   — |                      ¦   «         S )z)return an astroid.Function node as string)Úformat_argsr'   s     r   Úvisit_argumentszAsStringVisitor.visit_argumentsl   s   € à×ÒÑ!Ô!Ð!r    c                ó,   — |                       |¦  «        S )z(return an astroid.AssAttr node as string©Úvisit_attributer'   s     r   Úvisit_assignattrz AsStringVisitor.visit_assignattrp   ó   € à×#Ò# DÑ)Ô)Ð)r    c                óº   — |j         r8d|j                             | ¦  «        › d|j                              | ¦  «        › �S d|j                             | ¦  «        › �S )z'return an astroid.Assert node as stringzassert ú, )ÚfailÚtestr$   r'   s     r   Úvisit_assertzAsStringVisitor.visit_assertt   sa   € àŒ9ð 	PØO˜TœY×-Ò-¨dÑ3Ô3ÐOÐO°t´y×7GÒ7GÈÑ7MÔ7MÐOÐOÐOØ1˜œ×)Ò)¨$Ñ/Ô/Ð1Ð1Ð1r    c                ó   — |j         S )z(return an astroid.AssName node as string©Únamer'   s     r   Úvisit_assignnamez AsStringVisitor.visit_assignnamez   ó
   € àŒyÐr    c                óŽ   ‡ — d                      ˆ fd„|j        D ¦   «         ¦  «        }|› d|j                             ‰ ¦  «        › �S )z'return an astroid.Assign node as stringú = c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r<   s     €r   r9   z/AsStringVisitor.visit_assign.<locals>.<genexpr>€   s-   øè è € Ð>Ð>¨A˜Ÿš $™œÐ>Ð>Ð>Ð>Ð>Ð>r    )r?   Útargetsr/   r$   )r   r(   Úlhss   `  r   Úvisit_assignzAsStringVisitor.visit_assign~   sO   ø€ à�jŠjÐ>Ð>Ð>Ð>°´Ð>Ñ>Ô>Ñ>Ô>ˆØÐ3Ð3˜$œ*×+Ò+¨DÑ1Ô1Ð3Ð3Ð3r    c                ó€   — |j                              | ¦  «        › d|j        › d|j                             | ¦  «        › �S )z*return an astroid.AugAssign node as stringú )Útargetr$   Úopr/   r'   s     r   Úvisit_augassignzAsStringVisitor.visit_augassignƒ   s@   € à”+×$Ò$ TÑ*Ô*ÐPÐP¨T¬WÐPÐP°t´z×7HÒ7HÈÑ7NÔ7NÐPÐPÐPr    c                óÊ   — |j                              | ¦  «        }|j                             | ¦  «        }|j        €|› d|› �S |› d|› d|j                             | ¦  «        › �S )z*Return an astroid.AugAssign node as stringNú: rl   )rs   r$   Ú
annotationr/   )r   r(   rs   rx   s       r   Úvisit_annassignzAsStringVisitor.visit_annassign‡   sv   € ð ”×#Ò# DÑ)Ô)ˆØ”_×+Ò+¨DÑ1Ô1ˆ
ØŒ:ÐØÐ,Ð, 
Ð,Ð,Ð,ØÐDÐD˜JÐDÐD¨4¬:×+<Ò+<¸TÑ+BÔ+BÐDÐDÐDr    c                óÀ   — |                       ||j        ¦  «        }|                       ||j        d¬¦  «        }|j        dk    r|› |j        › |› �S |› d|j        › d|› �S )z&return an astroid.BinOp node as stringF©rB   ú**rr   )rH   ÚleftÚrightrt   )r   r(   r}   r~   s       r   Úvisit_binopzAsStringVisitor.visit_binop�   sv   € à×&Ò& t¨T¬YÑ7Ô7ˆØ×'Ò'¨¨d¬jÀ%Ð'ÑHÔHˆØŒ7�dŠ?ˆ?ØÐ,˜DœGÐ, UÐ,Ð,Ð,àÐ*Ð*˜œÐ*Ð* 5Ð*Ð*Ð*r    c                ój   ‡ ‡— ˆˆ fd„‰j         D ¦   «         }d‰j        › d�                     |¦  «        S )z'return an astroid.BoolOp node as stringc                ó>   •— g | ]}‰                      ‰|¦  «        › ‘ŒS r6   ©rH   )r7   r=   r(   r   s     €€r   r>   z0AsStringVisitor.visit_boolop.<locals>.<listcomp>›   s,   ø€ ÐMÐMÐM¸A�T×,Ò,¨T°1Ñ5Ô5Ð7ÐMÐMÐMr    rr   )Úvaluesrt   r?   )r   r(   rƒ   s   `` r   Úvisit_boolopzAsStringVisitor.visit_boolop™   s@   øø€ àMÐMÐMÐMÐMÀÄÐMÑMÔMˆØ�D”G���×$Ò$ VÑ,Ô,Ð,r    c                ó   — dS )z&return an astroid.Break node as stringÚbreakr6   r'   s     r   Úvisit_breakzAsStringVisitor.visit_breakž   s   € àˆwr    c                óú   ‡ — ‰                       ||j        ¦  «        }ˆ fd„|j        D ¦   «         }|j        rˆ fd„|j        D ¦   «         }ng }|                     |¦  «         |› dd                     |¦  «        › d�S )z%return an astroid.Call node as stringc                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r6   r;   )r7   Úargr   s     €r   r>   z.AsStringVisitor.visit_call.<locals>.<listcomp>¥   s%   ø€ Ð6Ð6Ð6 S�—
’
˜4Ñ Ô Ð6Ð6Ð6r    c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r6   r;   )r7   Úkwargr   s     €r   r>   z.AsStringVisitor.visit_call.<locals>.<listcomp>§   s%   ø€ ÐFÐFÐF¨u˜Ÿš TÑ*Ô*ÐFÐFÐFr    rD   rb   rE   )rH   ÚfuncÚargsÚkeywordsÚextendr?   )r   r(   Úexpr_strrŽ   r�   s   `    r   Ú
visit_callzAsStringVisitor.visit_call¢   s”   ø€ à×*Ò*¨4°´Ñ;Ô;ˆØ6Ð6Ð6Ð6¨D¬IÐ6Ñ6Ô6ˆØŒ=ð 	ØFÐFÐFÐF¸¼ÐFÑFÔFˆHˆHàˆHà�Š�HÑÔÐØÐ/Ð/˜TŸYšY t™_œ_Ð/Ð/Ð/Ð/r    c           	     ó  ‡ — |j         r|j                              ‰ ¦  «        nd}ˆ fd„|j        D ¦   «         }|j        rD|                     ¦   «         s0|                     d|j                             ‰ ¦  «        z   ¦  «         |ˆ fd„|j        D ¦   «         z  }|rdd                     |¦  «        › d�nd}‰                      |j	        ¦  «        }d 
                    ||j        ||‰                      |j        ¦  «        ¦  «        S )	z)return an astroid.ClassDef node as stringr-   c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r6   r;   r<   s     €r   r>   z2AsStringVisitor.visit_classdef.<locals>.<listcomp>±   s#   ø€ Ð3Ð3Ð3 1�—’˜‘”Ð3Ð3Ð3r    z
metaclass=c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r6   r;   r<   s     €r   r>   z2AsStringVisitor.visit_classdef.<locals>.<listcomp>´   s#   ø€ Ð7Ð7Ð7 A�—’˜$‘”Ð7Ð7Ð7r    rD   rb   rE   z

{}class {}{}:{}
{}
)Ú
decoratorsr$   ÚbasesÚ
_metaclassÚhas_metaclass_hackÚappendr�   r?   r0   r*   r.   rh   rA   Úbody)r   r(   ÚdecoraterŽ   Úargs_strÚdocss   `     r   Úvisit_classdefzAsStringVisitor.visit_classdef®   s  ø€ à37´?ÐJ�4”?×)Ò)¨$Ñ/Ô/Ð/ÈˆØ3Ð3Ð3Ð3¨¬
Ð3Ñ3Ô3ˆØŒ?ð 	E 4×#:Ò#:Ñ#<Ô#<ð 	EØ�KŠK˜ t¤×'=Ò'=¸dÑ'CÔ'CÑCÑDÔDÐDØÐ7Ð7Ð7Ð7¨¬Ð7Ñ7Ô7Ñ7ˆØ-1Ð9Ð)�t—y’y ‘”Ð)Ð)Ð)Ð)°rˆØ× Ò  ¤Ñ/Ô/ˆà*×1Ò1Ø�d”i ¨4°·²ÀÄÑ1KÔ1Kñ
ô 
ð 	
r    c                ó”   ‡ ‡— d                      ˆˆ fd„‰j        D ¦   «         ¦  «        }‰                      ‰‰j        ¦  «        › d|› �S )z(return an astroid.Compare node as stringrr   c              3  óX   •K  — | ]$\  }}|› d ‰                      ‰|d¬¦  «        › �V — Œ%dS )rr   Fr{   Nr‚   )r7   rt   Úexprr(   r   s      €€r   r9   z0AsStringVisitor.visit_compare.<locals>.<genexpr>¾   s^   øè è € ð 
ð 
á��Dð ÐHÐH�D×+Ò+¨D°$ÀÐ+ÑFÔFÐHÐHð
ð 
ð 
ð 
ð 
ð 
r    )r?   ÚopsrH   r}   )r   r(   Úrhs_strs   `` r   Úvisit_comparezAsStringVisitor.visit_compare¼   sl   øø€ à—(’(ð 
ð 
ð 
ð 
ð 
à œHð
ñ 
ô 
ñ 
ô 
ˆð ×)Ò)¨$°´	Ñ:Ô:ÐFÐF¸WÐFÐFÐFr    c                óâ   ‡ — d                      ˆ fd„|j        D ¦   «         ¦  «        }d|j                             ‰ ¦  «        › d|j                             ‰ ¦  «        › |› �}|j        rdnd› |› �S )z.return an astroid.Comprehension node as stringr-   c              3  óH   •K  — | ]}d |                      ‰¦  «        › �V — ŒdS )ú if Nr;   r<   s     €r   r9   z6AsStringVisitor.visit_comprehension.<locals>.<genexpr>Æ   s6   øè è € Ð@Ð@°!Ð-˜QŸXšX d™^œ^Ð-Ð-Ð@Ð@Ð@Ð@Ð@Ð@r    zfor z in rS   )r?   Úifsrs   r$   ÚiterÚis_async)r   r(   r©   Ú	generateds   `   r   Úvisit_comprehensionz#AsStringVisitor.visit_comprehensionÄ   s‚   ø€ à�gŠgÐ@Ð@Ð@Ð@°t´xÐ@Ñ@Ô@Ñ@Ô@ˆØV˜4œ;×-Ò-¨dÑ3Ô3ÐVÐV¸¼×9IÒ9IÈ$Ñ9OÔ9OÐVÐQTÐVÐVˆ	Ø"œmÐ3�(�(°Ð@°YÐ@Ð@Ð@r    c                óJ   — |j         t          u rdS t          |j         ¦  «        S )z&return an astroid.Const node as stringz...)r/   ÚEllipsisÚreprr'   s     r   Úvisit_constzAsStringVisitor.visit_constÊ   s$   € àŒ:�Ð!Ð!Ø�5Ý�D”JÑÔÐr    c                ó   — dS )z)return an astroid.Continue node as stringÚcontinuer6   r'   s     r   Úvisit_continuezAsStringVisitor.visit_continueÐ   s   € àˆzr    c                óV   ‡ — dd                      ˆ fd„|j        D ¦   «         ¦  «        › �S )z'return an astroid.Delete node as stringzdel rb   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   ©r7   rG   r   s     €r   r9   z/AsStringVisitor.visit_delete.<locals>.<genexpr>Ö   s/   øè è € ÐMÐM°u §¢¨TÑ 2Ô 2ÐMÐMÐMÐMÐMÐMr    )r?   rn   r'   s   ` r   Úvisit_deletezAsStringVisitor.visit_deleteÔ   s4   ø€ àO�d—i’iÐMÐMÐMÐMÀÄÐMÑMÔMÑMÔMÐOÐOÐOr    c                ó,   — |                       |¦  «        S )z(return an astroid.DelAttr node as stringr]   r'   s     r   Úvisit_delattrzAsStringVisitor.visit_delattrØ   r`   r    c                ó   — |j         S )z(return an astroid.DelName node as stringrg   r'   s     r   Úvisit_delnamezAsStringVisitor.visit_delnameÜ   rj   r    c                óV   ‡ — dd                      ˆ fd„|j        D ¦   «         ¦  «        z  S )z+return an astroid.Decorators node as stringz@%s
z
@c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   )r7   Úitemr   s     €r   r9   z3AsStringVisitor.visit_decorators.<locals>.<genexpr>â   s/   øè è € Ð#MÐ#M¸$ D§K¢K°Ñ$5Ô$5Ð#MÐ#MÐ#MÐ#MÐ#MÐ#Mr    )r?   r   r'   s   ` r   Úvisit_decoratorsz AsStringVisitor.visit_decoratorsà   s1   ø€ à˜ŸšÐ#MÐ#MÐ#MÐ#MÀ$Ä*Ð#MÑ#MÔ#MÑMÔMÑMÐMr    c                óX   — dd                      |                      |¦  «        ¦  «        z  S )z%return an astroid.Dict node as stringú{%s}rb   )r?   Ú_visit_dictr'   s     r   Ú
visit_dictzAsStringVisitor.visit_dictä   s'   € à˜Ÿ	š	 $×"2Ò"2°4Ñ"8Ô"8Ñ9Ô9Ñ9Ð9r    úIterator[str]c              #  ó¦   K  — |j         D ]F\  }}|                     | ¦  «        }|                     | ¦  «        }|dk    r||z   V — Œ=|› d|› �V — ŒGd S )Nr|   rw   )Úitemsr$   )r   r(   Úkeyr/   s       r   rÃ   zAsStringVisitor._visit_dictè   s€   è è € Øœ*ð 	(ð 	(‰JˆC�Ø—*’*˜TÑ"Ô"ˆCØ—L’L Ñ&Ô&ˆEØ�dŠ{ˆ{à˜E‘kÐ!Ð!Ð!Ð!àÐ'Ð' Ð'Ð'Ð'Ð'Ð'Ð'ð	(ð 	(r    c                ó   — dS )Nr|   r6   r'   s     r   Úvisit_dictunpackz AsStringVisitor.visit_dictunpackò   s   € Øˆtr    c                óÚ   ‡ — d                      |j                             ‰ ¦  «        |j                             ‰ ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )z)return an astroid.DictComp node as stringz{{{}: {} {}}}rr   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r<   s     €r   r9   z1AsStringVisitor.visit_dictcomp.<locals>.<genexpr>ú   s-   øè è € Ð=Ð=¨�Q—X’X˜d‘^”^Ð=Ð=Ð=Ð=Ð=Ð=r    )r.   rÈ   r$   r/   r?   Ú
generatorsr'   s   ` r   Úvisit_dictcompzAsStringVisitor.visit_dictcompõ   se   ø€ à×%Ò%ØŒH�OŠO˜DÑ!Ô!ØŒJ×Ò˜dÑ#Ô#Ø�HŠHÐ=Ð=Ð=Ð=¨T¬_Ð=Ñ=Ô=Ñ=Ô=ñ
ô 
ð 	
r    c                ó6   — |j                              | ¦  «        S )z(return an astroid.Discard node as stringrO   r'   s     r   Ú
visit_exprzAsStringVisitor.visit_exprý   ó   € àŒz× Ò  Ñ&Ô&Ð&r    c                ó   — dS )z'dummy method for visiting an Empty noder-   r6   r'   s     r   Úvisit_emptynodezAsStringVisitor.visit_emptynode  ó   € àˆrr    c                ór  — d}t          t          |dd ¦  «        t          j        ¦  «        rd}|j        rb|j        r;|› d|j                             | ¦  «        › d|j                             | ¦  «        › �}n#|› d|j                             | ¦  «        › �}n|› }|› d|                      |j        ¦  «        › �S )NÚexceptÚparentzexcept*rr   ú as ú:
)	Ú
isinstanceÚgetattrr   ÚTryStarÚtyperh   r$   rA   r›   )r   r(   r=   Úexcss       r   Úvisit_excepthandlerz#AsStringVisitor.visit_excepthandler  sË   € ØˆÝ•g˜d H¨dÑ3Ô3µU´]ÑCÔCð 	ØˆAØŒ9ð 	ØŒyð 7ØÐRÐR˜dœi×.Ò.¨tÑ4Ô4ÐRÐR¸$¼)×:JÒ:JÈ4Ñ:PÔ:PÐRÐR��àÐ6Ð6˜dœi×.Ò.¨tÑ4Ô4Ð6Ð6��à�6ˆDØÐ7Ð7˜4Ÿ?š?¨4¬9Ñ5Ô5Ð7Ð7Ð7r    c                ó   — dS )zreturn an Empty node as stringr-   r6   r'   s     r   Úvisit_emptyzAsStringVisitor.visit_empty  rÔ   r    c                ó  — d                      |j                             | ¦  «        |j                             | ¦  «        |                      |j        ¦  «        ¦  «        }|j        r|› d|                      |j        ¦  «        › �}|S )z$return an astroid.For node as stringzfor {} in {}:
{}ú
else:
)r.   rs   r$   rª   rA   r›   Úorelse)r   r(   Úforss      r   rW   zAsStringVisitor.visit_for  s   € à"×)Ò)ØŒK×Ò˜tÑ$Ô$ d¤i×&6Ò&6°tÑ&<Ô&<¸d¿oºoÈdÌiÑ>XÔ>Xñ
ô 
ˆð Œ;ð 	DØÐCÐC T§_¢_°T´[Ñ%AÔ%AÐCÐCˆDØˆr    c                óv   — d                      d|j        pdz  |j        z   t          |j        ¦  «        ¦  «        S )z+return an astroid.ImportFrom node as stringzfrom {} import {}ú.r   )r.   ÚlevelÚmodnameÚ_import_stringÚnamesr'   s     r   Úvisit_importfromz AsStringVisitor.visit_importfrom  s;   € à"×)Ò)Ø�4”:�? Ñ# d¤lÑ2µNÀ4Ä:Ñ4NÔ4Nñ
ô 
ð 	
r    c                ó|   ‡ — d                      ˆ fd„|j        D ¦   «         ¦  «        }dD ]}||vr nŒ	d|z   |z   |z   S )Nr-   c              3  óú   •K  — | ]u}t          |¦  «        j        d k    rDt          |j        ¦  «        dd…                              dd¦  «                             dd¦  «        n|                     ‰¦  «        V — ŒvdS )r   é   éÿÿÿÿÚ{z{{Ú}z}}N)rÝ   Ú__name__r°   r/   r%   r$   )r7   r/   r   s     €r   r9   z2AsStringVisitor.visit_joinedstr.<locals>.<genexpr>&  s“   øè è € ð 
ð 
ð õ ˜‘;”;Ô'¨7Ò2Ð2õ �U”[Ñ!Ô! ! B $Ô'ç’˜˜dÑ#Ô#§G¢G¨C°Ñ$6Ô$6Ð$6ð —\’\ $Ñ'Ô'ð
ð 
ð 
ð 
ð 
ð 
r    )ú'ú"ú"""z'''Úf)r?   rƒ   )r   r(   ÚstringÚquotes   `   r   Úvisit_joinedstrzAsStringVisitor.visit_joinedstr%  s|   ø€ Ø—’ð 
ð 
ð 
ð 
ð œð
ñ 
ô 
ñ 
ô 
ˆð( .ð 	ð 	ˆEØ˜FÐ"Ð"Ø�ð #ð �U‰{˜VÑ# eÑ+Ð+r    c                óö   — |j                              | ¦  «        }|j        r%|j        dk    r|dt          |j        ¦  «        z   z  }|j        r(|d|j                             | ¦  «        dd…         z   z  }d|z  S )Nr   ú!ú:é   rð   rÂ   )r/   r$   Ú
conversionÚchrÚformat_spec)r   r(   Úresults      r   Úvisit_formattedvaluez$AsStringVisitor.visit_formattedvalue@  s‡   € Ø”×"Ò" 4Ñ(Ô(ˆØŒ?ð 	1˜tœ°!Ò3Ð3à�c�C ¤Ñ0Ô0Ñ0Ñ0ˆFØÔð 	@ð �c˜DÔ,×3Ò3°DÑ9Ô9¸!¸B¸$Ô?Ñ?Ñ?ˆFØ˜‰Ðr    r(   únodes.FunctionDefÚkeywordc           
     óV  — |j         r|j                              | ¦  «        nd}|                      |j        ¦  «        }d}|j        r!d|j                             ¦   «         z   }|dz   }d}||||j        |j                             | ¦  «        |||                      |j	        ¦  «        fz  S )z<return a (possibly async) function definition node as stringr-   rý   z -> z
%s%s %s(%s)%s%s
%s)
r–   r$   r0   r*   ÚreturnsÚ	as_stringrh   rŽ   rA   r›   )r   r(   r  rœ   rž   ÚtrailerÚreturn_annotationÚ
def_formats           r   Úhandle_functiondefz"AsStringVisitor.handle_functiondefK  s¶   € à37´?ÐJ�4”?×)Ò)¨$Ñ/Ô/Ð/ÈˆØ× Ò  ¤Ñ/Ô/ˆØˆØŒ<ð 	.Ø &¨¬×)?Ò)?Ñ)AÔ)AÑ AÐØ'¨#Ñ-ˆGà,ˆ
ØØØØŒIØŒI×Ò˜TÑ"Ô"ØØØ�OŠO˜DœIÑ&Ô&ð
ñ 
ð 	
r    c                ó.   — |                       |d¦  «        S )z,return an astroid.FunctionDef node as stringÚdef©r  r'   s     r   Úvisit_functiondefz!AsStringVisitor.visit_functiondef_  s   € à×&Ò& t¨UÑ3Ô3Ð3r    únodes.AsyncFunctionDefc                ó.   — |                       |d¦  «        S )z.return an astroid.AsyncFunction node as stringz	async defr  r'   s     r   Úvisit_asyncfunctiondefz&AsStringVisitor.visit_asyncfunctiondefc  s   € à×&Ò& t¨[Ñ9Ô9Ð9r    c                ó¨   ‡ — d                      |j                             ‰ ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )z-return an astroid.GeneratorExp node as stringz({} {})rr   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r<   s     €r   r9   z5AsStringVisitor.visit_generatorexp.<locals>.<genexpr>j  ó-   øè è € Ð+TÐ+T¸q¨A¯HªH°T©N¬NÐ+TÐ+TÐ+TÐ+TÐ+TÐ+Tr    ©r.   Úeltr$   r?   rÍ   r'   s   ` r   Úvisit_generatorexpz"AsStringVisitor.visit_generatorexpg  óQ   ø€ à×ÒØŒH�OŠO˜DÑ!Ô! 3§8¢8Ð+TÐ+TÐ+TÐ+TÀDÄOÐ+TÑ+TÔ+TÑ#TÔ#Tñ
ô 
ð 	
r    c                ó  — 	 |                       ||j        ¦  «        }nJ# t          $ r= t          j        dt
          d¬¦  «         d|j                             | ¦  «        › d�}Y nw xY w|                     ¦   «         rd|› d�}|› d|j        › �S )z(return an astroid.Getattr node as stringz<Recursion limit exhausted; defaulting to adding parentheses.rþ   )Ú
stacklevelrD   rE   rç   )	rH   r¢   ÚRecursionErrorÚwarningsÚwarnÚUserWarningr$   ÚisdigitÚattrname)r   r(   r}   s      r   r^   zAsStringVisitor.visit_attributem  s¸   € ð	1Ø×*Ò*¨4°´Ñ;Ô;ˆDˆDøÝð 	1ð 	1ð 	1ÝŒMØNÝØðñ ô ð ð
 1�t”y×'Ò'¨Ñ-Ô-Ð0Ð0Ð0ˆDˆDˆDð	1øøøð �<Š<‰>Œ>ð 	Ø�t�;�;�;ˆDØÐ(Ð(˜œÐ(Ð(Ð(s   ‚ žAA%Á$A%c                ó<   — dd                      |j        ¦  «        › �S )z'return an astroid.Global node as stringzglobal rb   ©r?   rë   r'   s     r   Úvisit_globalzAsStringVisitor.visit_global|  s   € à0˜Ÿš 4¤:Ñ.Ô.Ð0Ð0Ð0r    c                óš  — d|j                              | ¦  «        › d|                      |j        ¦  «        › �g}|                     ¦   «         r3|                     d|                      |j        d¬¦  «        › �¦  «         n7|j        r0|                     d|                      |j        ¦  «        › �¦  «         d                     |¦  «        S )z#return an astroid.If node as stringzif rÙ   ÚelFr   úelse:
r#   )rd   r$   rA   r›   Úhas_elif_blockrš   rä   r?   )r   r(   r©   s      r   Úvisit_ifzAsStringVisitor.visit_if€  sÁ   € àL�T”Y×%Ò% dÑ+Ô+ÐLÐL°·²ÀÄ	Ñ0JÔ0JÐLÐLÐMˆØ×ÒÑ Ô ð 	AØ�JŠJÐH˜DŸOšO¨D¬KÀ˜OÑFÔFÐHÐHÑIÔIÐIÐIØŒ[ð 	AØ�JŠJÐ? §¢°´Ñ!=Ô!=Ð?Ð?Ñ@Ô@Ð@Ø�yŠy˜‰~Œ~Ðr    c           	     óÒ   — d                      |                      ||j        d¬¦  «        |                      ||j        d¬¦  «        |                      ||j        d¬¦  «        ¦  «        S )z&return an astroid.IfExp node as stringz{} if {} else {}Tr{   F)r.   rH   r›   rd   rä   r'   s     r   Úvisit_ifexpzAsStringVisitor.visit_ifexp‰  sh   € à!×(Ò(Ø×#Ò# D¨$¬)¸TÐ#ÑBÔBØ×#Ò# D¨$¬)¸TÐ#ÑBÔBØ×#Ò# D¨$¬+¸uÐ#ÑEÔEñ
ô 
ð 	
r    c                ó0   — dt          |j        ¦  «        › �S )z'return an astroid.Import node as stringzimport )rê   rë   r'   s     r   Úvisit_importzAsStringVisitor.visit_import‘  s   € à5�¨¬
Ñ3Ô3Ð5Ð5Ð5r    c                ó’   — |j         €d|j                             | ¦  «        › �S |j         › d|j                             | ¦  «        › �S )z(return an astroid.Keyword node as stringNr|   ú=)rŠ   r/   r$   r'   s     r   Úvisit_keywordzAsStringVisitor.visit_keyword•  sN   € àŒ8ÐØ1˜œ
×)Ò)¨$Ñ/Ô/Ð1Ð1Ð1Ø”(Ð6Ð6˜TœZ×.Ò.¨tÑ4Ô4Ð6Ð6Ð6r    c                óˆ   — |j                              | ¦  «        }|j                             | ¦  «        }|rd|› d|› �S d|› �S )z'return an astroid.Lambda node as stringzlambda rw   zlambda: )rŽ   r$   r›   )r   r(   rŽ   r›   s       r   Úvisit_lambdazAsStringVisitor.visit_lambda›  sX   € àŒy×Ò Ñ%Ô%ˆØŒy×Ò Ñ%Ô%ˆØð 	,Ø+˜TÐ+Ð+ TÐ+Ð+Ð+à ˜$Ð Ð Ð r    c                óX   ‡ — dd                      ˆ fd„|j        D ¦   «         ¦  «        › d�S )z%return an astroid.List node as stringú[rb   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r·   s     €r   r9   z-AsStringVisitor.visit_list.<locals>.<genexpr>¦  ó/   øè è € ÐGÐG°E˜UŸ\š\¨$Ñ/Ô/ÐGÐGÐGÐGÐGÐGr    ú]©r?   Úeltsr'   s   ` r   Ú
visit_listzAsStringVisitor.visit_list¤  s7   ø€ àJ�4—9’9ÐGÐGÐGÐG¸T¼YÐGÑGÔGÑGÔGÐJÐJÐJÐJr    c                ó¨   ‡ — d                      |j                             ‰ ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )z)return an astroid.ListComp node as stringz[{} {}]rr   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r<   s     €r   r9   z1AsStringVisitor.visit_listcomp.<locals>.<genexpr>«  r  r    r  r'   s   ` r   Úvisit_listcompzAsStringVisitor.visit_listcomp¨  r  r    c                óŽ   ‡ — |j         rd|j         j        › d�nd}|d                     ˆ fd„|j        D ¦   «         ¦  «        z   dz   S )z'return an astroid.Module node as stringrö   z"""

r-   r#   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r<   s     €r   r9   z/AsStringVisitor.visit_module.<locals>.<genexpr>±  s-   øè è € ÐBÐB°1 §¢¨¡¤ÐBÐBÐBÐBÐBÐBr    z

)r*   r/   r?   r›   )r   r(   rž   s   `  r   Úvisit_modulezAsStringVisitor.visit_module®  sX   ø€ à59´]ÐJÐ1�T”]Ô(Ð1Ð1Ð1Ð1ÈˆØ�d—i’iÐBÐBÐBÐB¸¼	ÐBÑBÔBÑBÔBÑBÀVÑKÐKr    c                ó   — |j         S )z%return an astroid.Name node as stringrg   r'   s     r   Ú
visit_namezAsStringVisitor.visit_name³  rj   r    c                óx   — |j                              | ¦  «        }|j                             | ¦  «        }|› d|› �S )z.Return an assignment expression node as stringz := )rs   r$   r/   )r   r(   rs   r/   s       r   Úvisit_namedexprzAsStringVisitor.visit_namedexpr·  s@   € à”×#Ò# DÑ)Ô)ˆØ”
×!Ò! $Ñ'Ô'ˆØÐ%Ð%˜eÐ%Ð%Ð%r    c                ó<   — dd                      |j        ¦  «        › �S )z)return an astroid.Nonlocal node as stringz	nonlocal rb   r$  r'   s     r   Úvisit_nonlocalzAsStringVisitor.visit_nonlocal½  s   € à2˜4Ÿ9š9 T¤ZÑ0Ô0Ð2Ð2Ð2r    únodes.ParamSpecc                ó6   — |j                              | ¦  «        S )z*return an astroid.ParamSpec node as string©rh   r$   r'   s     r   Úvisit_paramspeczAsStringVisitor.visit_paramspecÁ  s   € àŒy×Ò Ñ%Ô%Ð%r    c                ó   — dS )z%return an astroid.Pass node as stringÚpassr6   r'   s     r   Ú
visit_passzAsStringVisitor.visit_passÅ  s   € àˆvr    úobjects.PartialFunctionc                ó,   — |                       |¦  «        S )z,Return an objects.PartialFunction as string.)r  r'   s     r   Úvisit_partialfunctionz%AsStringVisitor.visit_partialfunctionÉ  s   € à×%Ò% dÑ+Ô+Ð+r    c                óÌ   — |j         r\|j        r8d|j                              | ¦  «        › d|j                             | ¦  «        › �S d|j                              | ¦  «        › �S dS )z&return an astroid.Raise node as stringzraise z from Úraise)ÚexcÚcauser$   r'   s     r   Úvisit_raisezAsStringVisitor.visit_raiseÍ  sl   € àŒ8ð 	4ØŒzð WØV ¤§¢°Ñ 5Ô 5ÐVÐV¸T¼Z×=NÒ=NÈtÑ=TÔ=TÐVÐVÐVØ3˜DœHŸOšO¨DÑ1Ô1Ð3Ð3Ð3Øˆwr    c                ó  ‡ — |                      ¦   «         rMt          |j        j        ¦  «        dk    r0ˆ fd„|j        j        D ¦   «         }dd                     |¦  «        › �S |j        rd|j                             ‰ ¦  «        › �S dS )z'return an astroid.Return node as stringrï   c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r6   r;   r·   s     €r   r>   z0AsStringVisitor.visit_return.<locals>.<listcomp>Ø  s%   ø€ ÐDÐDÐD¨5�E—L’L Ñ&Ô&ÐDÐDÐDr    zreturn rb   r!   )Úis_tuple_returnÚlenr/   r:  r?   r$   )r   r(   r:  s   `  r   Úvisit_returnzAsStringVisitor.visit_returnÕ  s�   ø€ à×ÒÑ!Ô!ð 	/¥c¨$¬*¬/Ñ&:Ô&:¸QÒ&>Ð&>ØDÐDÐDÐD°D´J´OÐDÑDÔDˆDØ.˜TŸYšY t™_œ_Ð.Ð.Ð.àŒ:ð 	7Ø6˜TœZ×.Ò.¨tÑ4Ô4Ð6Ð6Ð6àˆxr    c                óV   ‡ — dd                      ˆ fd„|j        D ¦   «         ¦  «        z  S )z$return an astroid.Set node as stringrÂ   rb   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r·   s     €r   r9   z,AsStringVisitor.visit_set.<locals>.<genexpr>â  s/   øè è € Ð!LÐ!L¸ %§,¢,¨tÑ"4Ô"4Ð!LÐ!LÐ!LÐ!LÐ!LÐ!Lr    r9  r'   s   ` r   Ú	visit_setzAsStringVisitor.visit_setà  s1   ø€ à˜Ÿ	š	Ð!LÐ!LÐ!LÐ!LÀ$Ä)Ð!LÑ!LÔ!LÑLÔLÑLÐLr    c                ó¨   ‡ — d                      |j                             ‰ ¦  «        d                     ˆ fd„|j        D ¦   «         ¦  «        ¦  «        S )z(return an astroid.SetComp node as stringz	{{{} {}}}rr   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r<   s     €r   r9   z0AsStringVisitor.visit_setcomp.<locals>.<genexpr>ç  r  r    r  r'   s   ` r   Úvisit_setcompzAsStringVisitor.visit_setcompä  sQ   ø€ à×!Ò!ØŒH�OŠO˜DÑ!Ô! 3§8¢8Ð+TÐ+TÐ+TÐ+TÀDÄOÐ+TÑ+TÔ+TÑ#TÔ#Tñ
ô 
ð 	
r    c                óú   — |j         r|j                              | ¦  «        nd}|j        r|j                             | ¦  «        nd}|j        r|j                             | ¦  «        nd}|r
|› d|› d|› �S |› d|› �S )z&return an astroid.Slice node as stringr-   rý   )Úlowerr$   ÚupperÚstep)r   r(   rc  rd  re  s        r   Úvisit_slicezAsStringVisitor.visit_sliceê  s�   € à+/¬:Ð=�”
×!Ò! $Ñ'Ô'Ð'¸2ˆØ+/¬:Ð=�”
×!Ò! $Ñ'Ô'Ð'¸2ˆØ)-¬Ð:ˆtŒy×Ò Ñ%Ô%Ð%¸ˆØð 	-ØÐ,Ð,˜eÐ,Ð, dÐ,Ð,Ð,ØÐ!Ð!˜%Ð!Ð!Ð!r    c                ó4  — |j         }|j        j                             ¦   «         dk    r|j        }|                     | ¦  «        }|j        j                             ¦   «         dk    r|j        r
|dd…         }|                      ||j        ¦  «        › d|› d�S )z*return an astroid.Subscript node as stringÚindexÚtuplerï   rð   r5  r8  )ÚsliceÚ	__class__ró   rc  r/   r$   r:  rH   )r   r(   ÚidxÚidxstrs       r   Úvisit_subscriptzAsStringVisitor.visit_subscriptó  s˜   € àŒjˆØŒ=Ô!×'Ò'Ñ)Ô)¨WÒ4Ð4Ø”)ˆCØ—’˜DÑ!Ô!ˆØŒ=Ô!×'Ò'Ñ)Ô)¨WÒ4Ð4¸¼Ð4ð ˜A˜b˜D”\ˆFØ×)Ò)¨$°´
Ñ;Ô;ÐGÐG¸fÐGÐGÐGÐGr    c                ó¨  — d|                       |j        ¦  «        › �g}|j        D ]*}|                     |                     | ¦  «        ¦  «         Œ+|j        r0|                     d|                       |j        ¦  «        › �¦  «         |j        r0|                     d|                       |j        ¦  «        › �¦  «         d                     |¦  «        S )z$return an astroid.Try node as stringútry:
r(  ú	finally:
r#   ©rA   r›   Úhandlersrš   r$   rä   Ú	finalbodyr?   ©r   r(   ÚtrysÚhandlers       r   Ú	visit_tryzAsStringVisitor.visit_tryÿ  óÊ   € à5˜Ÿš¨¬Ñ3Ô3Ð5Ð5Ð6ˆØ”}ð 	.ð 	.ˆGØ�KŠK˜Ÿš tÑ,Ô,Ñ-Ô-Ð-Ð-ØŒ;ð 	BØ�KŠKÐ@ $§/¢/°$´+Ñ">Ô">Ð@Ð@ÑAÔAÐAØŒ>ð 	HØ�KŠKÐF T§_¢_°T´^Ñ%DÔ%DÐFÐFÑGÔGÐGØ�yŠy˜‰ŒÐr    c                ó¨  — d|                       |j        ¦  «        › �g}|j        D ]*}|                     |                     | ¦  «        ¦  «         Œ+|j        r0|                     d|                       |j        ¦  «        › �¦  «         |j        r0|                     d|                       |j        ¦  «        › �¦  «         d                     |¦  «        S )z(return an astroid.TryStar node as stringrp  r(  rq  r#   rr  ru  s       r   Úvisit_trystarzAsStringVisitor.visit_trystar
  ry  r    c                óÐ   ‡ — t          |j        ¦  «        dk    r$d|j        d                              ‰ ¦  «        › d�S dd                     ˆ fd„|j        D ¦   «         ¦  «        › d�S )z&return an astroid.Tuple node as stringrï   rD   r   z, )rb   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r·   s     €r   r9   z.AsStringVisitor.visit_tuple.<locals>.<genexpr>  r7  r    rE   )rZ  r:  r$   r?   r'   s   ` r   Úvisit_tuplezAsStringVisitor.visit_tuple  so   ø€ åˆtŒy‰>Œ>˜QÒÐØ5�t”y ”|×*Ò*¨4Ñ0Ô0Ð5Ð5Ð5Ð5ØJ�4—9’9ÐGÐGÐGÐG¸T¼YÐGÑGÔGÑGÔGÐJÐJÐJÐJr    únodes.TypeAliasc                óH   — |j         r|j                              | ¦  «        ndS )z*return an astroid.TypeAlias node as stringÚ_rJ  r'   s     r   Úvisit_typealiaszAsStringVisitor.visit_typealias  ó$   € à)-¬Ð;ˆtŒy×Ò Ñ%Ô%Ð%¸Ð;r    únodes.TypeVarc                óH   — |j         r|j                              | ¦  «        ndS )z(return an astroid.TypeVar node as stringr�  rJ  r'   s     r   Úvisit_typevarzAsStringVisitor.visit_typevar  rƒ  r    únodes.TypeVarTuplec                óN   — |j         rd|j                              | ¦  «        z   ndS )z-return an astroid.TypeVarTuple node as stringÚ*r-   rJ  r'   s     r   Úvisit_typevartuplez"AsStringVisitor.visit_typevartuple#  s)   € à/3¬yÐ@ˆs�T”Y×%Ò% dÑ+Ô+Ñ+Ð+¸bÐ@r    c                ój   — |j         dk    rd}n|j         }|› |                      ||j        ¦  «        › �S )z(return an astroid.UnaryOp node as stringÚnotznot )rt   rH   Úoperand)r   r(   Úoperators      r   Úvisit_unaryopzAsStringVisitor.visit_unaryop'  s@   € àŒ7�eÒÐØˆHˆHà”wˆHØÐI˜D×3Ò3°D¸$¼,ÑGÔGÐIÐIÐIr    c                óÂ   — d|j                              | ¦  «        › d|                      |j        ¦  «        › �}|j        r|› d|                      |j        ¦  «        › �}|S )z&return an astroid.While node as stringzwhile rÙ   rã   )rd   r$   rA   r›   rä   )r   r(   Úwhiless      r   Úvisit_whilezAsStringVisitor.visit_while/  sf   € àQ˜$œ)×*Ò*¨4Ñ0Ô0ÐQÐQ°T·_²_ÀTÄYÑ5OÔ5OÐQÐQˆØŒ;ð 	HØÐGÐG¨¯ª¸¼Ñ)EÔ)EÐGÐGˆFØˆr    c                ó�   ‡ — d                      ˆ fd„|j        D ¦   «         ¦  «        }d|› d‰                      |j        ¦  «        › �S )z%return an astroid.With node as stringrb   c              3  ó„   •K  — | ]:\  }}|                      ‰¦  «        › |rd |                      ‰¦  «        › �pdz   V — Œ;dS )rØ   r-   Nr;   )r7   r¢   Úvr   s      €r   r9   z-AsStringVisitor.visit_with.<locals>.<genexpr>8  sl   øè è € ð 
ð 
á��að �{Š{˜4Ñ Ô Ð" aÐ&CÐ,C°1·8²8¸D±>´>Ð,CÐ,CÐ&IÀrÑJð
ð 
ð 
ð 
ð 
ð 
r    zwith rÙ   )r?   rÇ   rA   r›   )r   r(   rÇ   s   `  r   rT   zAsStringVisitor.visit_with6  sd   ø€ à—	’	ð 
ð 
ð 
ð 
àœ:ð
ñ 
ô 
ñ 
ô 
ˆð >�uÐ=Ð= §¢°´Ñ!;Ô!;Ð=Ð=Ð=r    c                ó€   — |j         rd|j                              | ¦  «        z   nd}d|z   }|j        j        r|S d|› d�S )z!yield an ast.Yield node as stringrr   r-   ÚyieldrD   rE   ©r/   r$   r×   Úis_statement©r   r(   Úyi_valr¢   s       r   Úvisit_yieldzAsStringVisitor.visit_yield>  sR   € à48´JÐF�#˜œ
×)Ò)¨$Ñ/Ô/Ñ/Ð/ÀBˆØ˜ÑˆØŒ;Ô#ð 	ØˆKà�4ˆ{ˆ{ˆ{Ðr    c                ó€   — |j         rd|j                              | ¦  «        z   nd}d|z   }|j        j        r|S d|› d�S )z+Return an astroid.YieldFrom node as string.rr   r-   z
yield fromrD   rE   r˜  rš  s       r   Úvisit_yieldfromzAsStringVisitor.visit_yieldfromG  sR   € à48´JÐF�#˜œ
×)Ò)¨$Ñ/Ô/Ñ/Ð/ÀBˆØ˜fÑ$ˆØŒ;Ô#ð 	ØˆKà�4ˆ{ˆ{ˆ{Ðr    c                ó<   — d|j                              | ¦  «        z   S )zreturn Starred node as stringr‰  rO   r'   s     r   Úvisit_starredzAsStringVisitor.visit_starredP  s   € à�T”Z×&Ò& tÑ,Ô,Ñ,Ð,r    r	   c                ór   — d|j                              | ¦  «        › d|                      |j        ¦  «        › �S )z'Return an astroid.Match node as string.zmatch rÙ   )Úsubjectr$   rA   Úcasesr'   s     r   Úvisit_matchzAsStringVisitor.visit_matchT  s6   € àS˜œ×+Ò+¨DÑ1Ô1ÐSÐS°d·o²oÀdÄjÑ6QÔ6QÐSÐSÐSr    r   c                óÂ   — |j         rd|j                              | ¦  «        › �nd}d|j                             | ¦  «        › |› d|                      |j        ¦  «        › �S )z+Return an astroid.MatchCase node as string.r¨   r-   zcase rÙ   )Úguardr$   ÚpatternrA   r›   )r   r(   Ú	guard_strs      r   Úvisit_matchcasezAsStringVisitor.visit_matchcaseX  st   € à8<¼
ÐJÐ4˜4œ:×,Ò,¨TÑ2Ô2Ð4Ð4Ð4Èˆ	ð,�D”L×'Ò'¨Ñ-Ô-ð ,¨yð ,ð ,Ø�Š˜tœyÑ)Ô)ð,ð ,ð	
r    r   c                ó6   — |j                              | ¦  «        S )z,Return an astroid.MatchValue node as string.rO   r'   s     r   Úvisit_matchvaluez AsStringVisitor.visit_matchvalue`  rÑ   r    r   c                ó*   — t          | j        ¦  «        S )z0Return an astroid.MatchSingleton node as string.)r   r/   )r(   s    r   Úvisit_matchsingletonz$AsStringVisitor.visit_matchsingletond  s   € õ �4”:‰ŒÐr    r   c                ój   ‡ — |j         €dS dd                     ˆ fd„|j         D ¦   «         ¦  «        › d�S )z/Return an astroid.MatchSequence node as string.Nz[]r5  rb   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   ©r7   Úpr   s     €r   r9   z6AsStringVisitor.visit_matchsequence.<locals>.<genexpr>m  s-   øè è € ÐCÐC°˜QŸXšX d™^œ^ÐCÐCÐCÐCÐCÐCr    r8  )Úpatternsr?   r'   s   ` r   Úvisit_matchsequencez#AsStringVisitor.visit_matchsequencei  sD   ø€ àŒ=Ð Ø�4ØF�4—9’9ÐCÐCÐCÐC°T´]ÐCÑCÔCÑCÔCÐFÐFÐFÐFr    r   c                ó:  ‡ — g }|j         r@|j        r9|                     ˆ fd„t          |j         |j        ¦  «        D ¦   «         ¦  «         |j        r0|                     d|j                             ‰ ¦  «        › �¦  «         d› d                     |¦  «        › d› �S )z.Return an astroid.MatchMapping node as string.c              3  óx   •K  — | ]4\  }}|                      ‰¦  «        › d |                      ‰¦  «        › �V — Œ5dS )rw   Nr;   )r7   rÈ   r±  r   s      €r   r9   z5AsStringVisitor.visit_matchmapping.<locals>.<genexpr>s  s_   øè è € ð #ð #á�C˜ð —:’:˜dÑ#Ô#Ð7Ð7 q§x¢x°¡~¤~Ð7Ð7ð#ð #ð #ð #ð #ð #r    r|   rñ   rb   rò   )Úkeysr²  r�   ÚzipÚrestrš   r$   r?   )r   r(   Úmapping_stringss   `  r   Úvisit_matchmappingz"AsStringVisitor.visit_matchmappingo  sÃ   ø€ à%'ˆØŒ9ð 	˜œð 	Ø×"Ò"ð #ð #ð #ð #å! $¤)¨T¬]Ñ;Ô;ð#ñ #ô #ñ ô ð ð Œ9ð 	BØ×"Ò"Ð#@¨¬	×(8Ò(8¸Ñ(>Ô(>Ð#@Ð#@ÑAÔAÐAØÐ8�t—y’y Ñ1Ô1Ð8°3Ð8Ð8Ð8r    r   c                ó°  ‡ — |j         €t          |› d�¦  «        ‚g }|j        r&|                     ˆ fd„|j        D ¦   «         ¦  «         |j        rT|j        rMt          |j        |j        ¦  «        D ]2\  }}|                     |› d|                     ‰ ¦  «        › �¦  «         Œ3|j                              ‰ ¦  «        › dd 	                    |¦  «        › d�S )z,Return an astroid.MatchClass node as string.Nz does not have a 'cls' nodec              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r°  s     €r   r9   z3AsStringVisitor.visit_matchclass.<locals>.<genexpr>�  s-   øè è € Ð GÐ G°A §¢¨$¡¤Ð GÐ GÐ GÐ GÐ GÐ Gr    r0  rD   rb   rE   )
ÚclsÚAssertionErrorr²  r�   Ú	kwd_attrsÚkwd_patternsr·  rš   r$   r?   )r   r(   Úclass_stringsÚattrr§  s   `    r   Úvisit_matchclassz AsStringVisitor.visit_matchclass{  sù   ø€ àŒ8ÐÝ  DÐ!EÐ!EÐ!EÑFÔFÐFØ#%ˆØŒ=ð 	HØ× Ò Ð GÐ GÐ GÐ G¸¼Ð GÑ GÔ GÑGÔGÐGØŒ>ð 	G˜dÔ/ð 	GÝ!$ T¤^°TÔ5FÑ!GÔ!Gð Gð G‘��gØ×$Ò$¨Ð%EÐ%E¨w¯~ª~¸dÑ/CÔ/CÐ%EÐ%EÑFÔFÐFÐFØ”(—/’/ $Ñ'Ô'ÐEÐE¨$¯)ª)°MÑ*BÔ*BÐEÐEÐEÐEr    r   c                óN   — d|j         r|j                              | ¦  «        nd› �S )z+Return an astroid.MatchStar node as string.r‰  r�  rJ  r'   s     r   Úvisit_matchstarzAsStringVisitor.visit_matchstar‡  s,   € àA¨T¬YÐ?�4”9×#Ò# DÑ)Ô)Ð)¸CÐAÐAÐAr    r
   c                ó"  — ddl m}m}m} t	          |j        |||f¦  «        r#|j        r|j                             | ¦  «        ndS |j        r|j                             | ¦  «        nd› |j        rd|j                             | ¦  «        › �nd› �S )z)Return an astroid.MatchAs node as string.r   )r   r   r   r�  rØ   r-   )	Úastroid.nodes.node_classesr   r   r   rÚ   r×   rh   r$   r§  )r   r(   r   r   r   s        r   Úvisit_matchaszAsStringVisitor.visit_matchas‹  s¿   € ð 	WÐVÐVÐVÐVÐVÐVÐVÐVÐVå�d”k M°<ÀÐ#LÑMÔMð 	@Ø-1¬YÐ?�4”9×#Ò# DÑ)Ô)Ð)¸CÐ?à,0¬LÐAˆtŒ|×"Ò" 4Ñ(Ô(Ð(¸cð FØ26´)ÐCÐ.�d”i×&Ò& tÑ,Ô,Ð.Ð.Ð.ÀðFð Fð	
r    r   c                ó‚   ‡ — |j         €t          |› d�¦  «        ‚d                     ˆ fd„|j         D ¦   «         ¦  «        S )z)Return an astroid.MatchOr node as string.Nz does not have pattern nodesz | c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   r;   r°  s     €r   r9   z0AsStringVisitor.visit_matchor.<locals>.<genexpr>œ  s-   øè è € Ð@Ð@¨Q˜!Ÿ(š( 4™.œ.Ð@Ð@Ð@Ð@Ð@Ð@r    )r²  r¾  r?   r'   s   ` r   Úvisit_matchorzAsStringVisitor.visit_matchor˜  sK   ø€ àŒ=Ð Ý  DÐ!FÐ!FÐ!FÑGÔGÐGØ�zŠzÐ@Ð@Ð@Ð@°$´-Ð@Ñ@Ô@Ñ@Ô@Ð@r    c                ó6   — |j                              | ¦  «        S r   ©r×   r$   r'   s     r   Úvisit_frozensetzAsStringVisitor.visit_frozenset   ó   € ØŒ{×!Ò! $Ñ'Ô'Ð'r    c                ó6   — |j                              | ¦  «        S r   rÍ  r'   s     r   Úvisit_superzAsStringVisitor.visit_super£  rÏ  r    c                ó    — t          |¦  «        S r   ©r   r'   s     r   Úvisit_uninferablez!AsStringVisitor.visit_uninferable¦  ó   € Ý�4‰yŒyÐr    c                ó6   — |j                              | ¦  «        S r   )Úfunctionr$   r'   s     r   Úvisit_propertyzAsStringVisitor.visit_property©  ó   € ØŒ}×#Ò# DÑ)Ô)Ð)r    c                ó6   — |j                              | ¦  «        S r   )Úoriginalr$   r'   s     r   Úvisit_evaluatedobjectz%AsStringVisitor.visit_evaluatedobject¬  rÙ  r    r   c                ó    — t          |¦  «        S r   rÓ  r'   s     r   Úvisit_unknownzAsStringVisitor.visit_unknown¯  rÕ  r    N)r   )r   r   ©r!   r   )r*   r+   r!   r   )T)r1   r2   r   r3   r!   r   )rB   r3   r!   r   )rB   r3   r!   r3   )r!   rÅ   )r(   r  r  r   r!   r   )r(   r  r!   r   )r(   r  r!   r   )r(   rH  r!   r   )r(   rO  r!   r   )r(   r  r!   r   )r(   r„  r!   r   )r(   r‡  r!   r   )r(   r	   r!   r   )r(   r   r!   r   )r(   r   r!   r   )r(   r   r!   r   )r(   r   r!   r   )r(   r   r!   r   )r(   r   r!   r   )r(   r   r!   r   )r(   r
   r!   r   )r(   r   r!   r   )r(   r   r!   r   )dró   Ú
__module__Ú__qualname__Ú__doc__r   r)   r0   rA   rH   rF   rP   rU   rX   r[   r_   re   ri   rp   ru   ry   r   r„   r‡   r’   rŸ   r¥   r­   r±   r´   r¸   rº   r¼   rÀ   rÄ   rÃ   rÊ   rÎ   rÐ   rÓ   rß   rá   rW   rì   rú   r  r  r  r  r  r^   r%  r*  r,  r.  r1  r3  r;  r>  rA  rC  rE  rG  rK  rN  rQ  rV  r[  r^  ra  rf  rn  rx  r{  r~  r‚  r†  rŠ  r�  r’  rT   rœ  rž  r   r¤  r©  r«  Ústaticmethodr­  r³  rº  rÃ  rÅ  rÈ  rË  rÎ  rÑ  rÔ  rØ  rÜ  rÞ  r6   r    r   r   r   '   sÕ  € € € € € ØIÐIð"ð "ð "ð "ð "ð<ð <ð <ð <ð
ð 
ð 
ð 
ðIð Ið Ið Ið Ið"ð "ð "ð "ð "ðð ð ð ð02ð 2ð 2ð 2ð0ð 0ð 0ð 0ð/ð /ð /ð /ð"ð "ð "ð "ð*ð *ð *ð *ð2ð 2ð 2ð 2ðð ð ð ð4ð 4ð 4ð 4ð
Qð Qð Qð QðEð Eð Eð Eð+ð +ð +ð +ð-ð -ð -ð -ð
ð ð ð ð
0ð 
0ð 
0ð 
0ð
ð 
ð 
ð 
ðGð Gð Gð GðAð Að Að Að ð  ð  ð  ðð ð ð ðPð Pð Pð Pð*ð *ð *ð *ðð ð ð ðNð Nð Nð Nð:ð :ð :ð :ð(ð (ð (ð (ðð ð ð ð
ð 
ð 
ð 
ð'ð 'ð 'ð 'ðð ð ð ð8ð 8ð 8ð 8ðð ð ð ðð ð ð ð
ð 
ð 
ð 
ð,ð ,ð ,ð ,ð6	ð 	ð 	ð 	ð
ð 
ð 
ð 
ð(4ð 4ð 4ð 4ð:ð :ð :ð :ð
ð 
ð 
ð 
ð)ð )ð )ð )ð1ð 1ð 1ð 1ðð ð ð ð
ð 
ð 
ð 
ð6ð 6ð 6ð 6ð7ð 7ð 7ð 7ð!ð !ð !ð !ðKð Kð Kð Kð
ð 
ð 
ð 
ðLð Lð Lð Lð
ð ð ð ð&ð &ð &ð &ð3ð 3ð 3ð 3ð&ð &ð &ð &ðð ð ð ð,ð ,ð ,ð ,ðð ð ð ð	ð 	ð 	ð 	ðMð Mð Mð Mð
ð 
ð 
ð 
ð"ð "ð "ð "ð
Hð 
Hð 
Hð 
Hð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ðKð Kð Kð Kð<ð <ð <ð <ð<ð <ð <ð <ðAð Að Að AðJð Jð Jð Jðð ð ð ð>ð >ð >ð >ðð ð ð ðð ð ð ð-ð -ð -ð -ðTð Tð Tð Tð
ð 
ð 
ð 
ð'ð 'ð 'ð 'ð ðð ð ñ „\ððGð Gð Gð Gð
9ð 
9ð 
9ð 
9ð
Fð 
Fð 
Fð 
FðBð Bð Bð Bð
ð 
ð 
ð 
ðAð Að Að Að(ð (ð (ð(ð (ð (ðð ð ð*ð *ð *ð*ð *ð *ðð ð ð ð ð r    r   r!   r   c                ó¤   — g }| D ]7\  }}|�|                      |› d|› �¦  «         Œ"|                      |¦  «         Œ8d                     |¦  «        S )z5return a list of (name, asname) formatted as a stringNrØ   rb   )rš   r?   )rë   Ú_namesrh   Úasnames       r   rê   rê   ³  sj   € à€FØð  ð  ‰ˆˆfØÐØ�MŠM˜TÐ/Ð/ vÐ/Ð/Ñ0Ô0Ð0Ð0à�MŠM˜$ÑÔÐÐØ�9Š9�VÑÔÐr    r   rß  )râ  Ú
__future__r   r  Úcollections.abcr   Útypingr   Úastroidr   r   Úastroid.nodesr   rÇ  r	   r
   r   r   r   r   r   r   r   r   r   r&   r   rê   Úto_coder6   r    r   ú<module>rí     sm  ðð
 2Ð 1à "Ð "Ð "Ð "Ð "Ð "à €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð àð ØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  €ð
I
ð I
ð I
ð I
ð I
ñ I
ô I
ð I
ðXð ð ð ð ˆ/˜&Ñ
!Ô
!€€€r    