+
    iq                        R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIH	t	 ]'       d   ^ RIH
t
 Rt ! R R	4      tR
 R lt]! R4      tR# )z+This module renders Astroid nodes as string)annotationsN)Iterator)TYPE_CHECKING)nodes)objects c                     ] tR t^tRtRR R lltR R ltR R ltRR R	 lltRR
 R llt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 ltR8 R9 lt R: R; lt!R< R= lt"R> R? lt#R@ RA lt$RB RC lt%RD RE lt&RF RG lt'RH RI lt(RJ RK lt)RL RM lt*RN RO lt+RP RQ lt,RR RS lt-RT RU lt.RV RW lt/RX RY lt0RZ R[ lt1R\ R] lt2R^ R_ lt3R` Ra lt4Rb Rc lt5Rd Re lt6Rf Rg lt7Rh Ri lt8Rj Rk lt9Rl Rm lt:Rn Ro lt;Rp Rq lt<Rr Rs lt=Rt Ru lt>Rv Rw lt?Rx Ry lt@Rz R{ ltAR| R} ltBR~ R ltCR R ltDR R ltER R ltFR R ltGR R ltHR R ltIR R ltJR R ltKR R ltLR R ltMR R ltNR R ltOR R ltPR R ltQR R ltRR R ltSR R ltTR R ltUR R ltVR R ltW]XR R l4       tYR R ltZR R lt[R R lt\R R lt]R R lt^R R lt_R R lt`R R ltaR R ltbR R ltcR R ltdR R lteR R ltfR R ltgRthR# )AsStringVisitorz?Visitor to render an Astroid node as a valid python code stringc                   V ^8  d   QhRR/# )   indentstr )formats   "9/usr/lib/python3/dist-packages/astroid/nodes/as_string.py__annotate__AsStringVisitor.__annotate__   s     " "s "    c                	    Wn         R # Nr   )selfr   s   &&r   __init__AsStringVisitor.__init__   s    !r   c                    V ^8  d   QhRRRR/# )r   nodenodes.NodeNGreturnr   r   )r   s   "r   r   r      s     < <\ <c <r   c                L    VP                  V 4      P                  \        R4      # )z.Makes this visitor behave as a simple function
)acceptreplaceDOC_NEWLINEr   r   s   &&r   __call__AsStringVisitor.__call__   s    {{4 ((d;;r   c                    V ^8  d   QhRRRR/# )r   doc_nodeznodes.Const | Noner   r   r   )r   s   "r   r   r   #   s     
 
%7 
C 
r   c                    V'       g   R# RP                  V P                  VP                  P                  R\        4      4      # )z7Stop newlines in docs being indented by self._stmt_list z
{}"""{}"""r   )r   r   valuer!   r"   )r   r'   s   &&r   _docs_dedentAsStringVisitor._docs_dedent#   s5    $$KK//kB
 	
r   c               $    V ^8  d   QhRRRRRR/# )r   stmtslistr   boolr   r   r   )r   s   "r   r   r   ,   s&     I I Id Ic Ir   c           	         RP                  R V Uu. uF  q3P                  V 4      NK  	  up 4       4      pV'       g   V# V P                  VP                  RRV P                  ,           4      ,           # u upi )z return a list of nodes to stringr   c              3  8   "   T F  q'       g   K  Vx  K  	  R # 5ir   r   ).0nstrs   & r   	<genexpr>-AsStringVisitor._stmt_list.<locals>.<genexpr>.   s      #
<TDD<s   	
)joinr    r   r!   )r   r.   r   n	stmts_strs   &&&  r   
_stmt_listAsStringVisitor._stmt_list,   sg     #
6;<ehhtne<#
 
	 {{Y..tTDKK5GHHH =s   A5
c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   childis_leftr0   r   r   r   )r   s   "r   r   r   6   s,     " " ")5"@D"	"r   c                ~    V P                  WV4      '       d   RVP                  V 4       R2# VP                  V 4      # )z<Wrap child in parens only if required to keep same semantics())_should_wrapr    )r   r   r=   r>   s   &&&&r   _precedence_parens"AsStringVisitor._precedence_parens6   s?     T'22u||D)*!,,||D!!r   c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   r=   r>   r0   r   r   )r   s   "r   r   r   ?   s,       )5@D	r   c                    VP                  4       pVP                  4       pWE8  d   R# WE8X  d   W1P                  4       8w  d   R# R# )zmWrap child if:
- it has lower precedence
- same precedence with position opposite to associativity direction
TF)op_precedenceop_left_associative)r   r   r=   r>   node_precedencechild_precedences   &&&&  r   rB   AsStringVisitor._should_wrap?   sI     ,,. ..0- /3355 r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Awaitr   r   r   )r   s   "r   r   r   Y   s     2 2 2 2r   c                	>    R VP                   P                  V 4       2# )zawait r*   r    r#   s   &&r   visit_awaitAsStringVisitor.visit_awaitY   s    

))$/011r   c                    V ^8  d   QhRRRR/# )r   r   znodes.AsyncWithr   r   r   )r   s   "r   r   r   \   s     0 0O 0 0r   c                	*    R V P                  V4       2# async )
visit_withr#   s   &&r   visit_asyncwithAsStringVisitor.visit_asyncwith\   s    -.//r   c                    V ^8  d   QhRRRR/# )r   r   znodes.AsyncForr   r   r   )r   s   "r   r   r   _   s     / /> /c /r   c                	*    R V P                  V4       2# rS   )	visit_forr#   s   &&r   visit_asyncforAsStringVisitor.visit_asyncfor_   s    t,-..r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Argumentsr   r   r   )r   s   "r   r   r   b   s     " "O " "r   c                "    VP                  4       # )z(return an nodes.Arguments node as string)format_argsr#   s   &&r   visit_argumentsAsStringVisitor.visit_argumentsb   s    !!r   c                    V ^8  d   QhRRRR/# )r   r   znodes.AssignAttrr   r   r   )r   s   "r   r   r   f   s     * *%5 *# *r   c                $    V P                  V4      # )z)return an nodes.AssignAttr node as stringvisit_attributer#   s   &&r   visit_assignattr AsStringVisitor.visit_assignattrf       ##D))r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Assertr   r   r   )r   s   "r   r   r   j   s     2 2 2# 2r   c                    VP                   '       d;   RVP                  P                  V 4       RVP                   P                  V 4       2# RVP                  P                  V 4       2# )z%return an nodes.Assert node as stringzassert , )failtestr    r#   s   &&r   visit_assertAsStringVisitor.visit_assertj   s[    999TYY--d34Btyy7G7G7M6NOO))$/011r   c                    V ^8  d   QhRRRR/# )r   r   znodes.AssignNamer   r   r   )r   s   "r   r   r   p   s      %5 # r   c                    VP                   # )z)return an nodes.AssignName node as stringnamer#   s   &&r   visit_assignname AsStringVisitor.visit_assignnamep       yyr   c                    V ^8  d   QhRRRR/# )r   r   znodes.Assignr   r   r   )r   s   "r   r   r   t   s     4 4 4# 4r   c                   a  RP                  V 3R lVP                   4       4      pV RVP                  P                  S 4       2# )z%return an nodes.Assign node as string = c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r    r3   r8   r   s   & r   r5   /AsStringVisitor.visit_assign.<locals>.<genexpr>v   s     >A$    )r7   targetsr*   r    )r   r   lhss   f& r   visit_assignAsStringVisitor.visit_assignt   s<    jj>>>c$**++D1233r   c                    V ^8  d   QhRRRR/# )r   r   znodes.AugAssignr   r   r   )r   s   "r   r   r   y   s     Q QO Q Qr   c                    VP                   P                  V 4       RVP                   RVP                  P                  V 4       2# )z(return an nodes.AugAssign node as string )targetr    opr*   r#   s   &&r   visit_augassignAsStringVisitor.visit_augassigny   s=    ++$$T*+1TWWIQtzz7H7H7N6OPPr   c                    V ^8  d   QhRRRR/# )r   r   znodes.AnnAssignr   r   r   )r   s   "r   r   r   }   s     E EO E Er   c                    VP                   P                  V 4      pVP                  P                  V 4      pVP                  f   V RV 2# V RV RVP                  P                  V 4       2# )z(Return an nodes.AnnAssign node as string: ry   )r   r    
annotationr*   )r   r   r   r   s   &&  r   visit_annassignAsStringVisitor.visit_annassign}   sn     ##D)__++D1
::XR
|,,J<s4::+<+<T+B*CDDr   c                    V ^8  d   QhRRRR/# )r   r   znodes.BinOpr   r   r   )r   s   "r   r   r      s     + + + +r   c                    V P                  WP                  4      pV P                  WP                  RR7      pVP                  R8X  d   V VP                   V 2# V RVP                   RV 2# )z$return an nodes.BinOp node as stringFr>   **r   )rC   leftrightr   )r   r   r   r   s   &&  r   visit_binopAsStringVisitor.visit_binop   sl    &&tYY7''jj%'H77d?VDGG9UG,,q	5'**r   c                    V ^8  d   QhRRRR/# )r   r   znodes.BoolOpr   r   r   )r   s   "r   r   r      s     - - -# -r   c                    VP                    Uu. uF  q P                  W4       NK  	  ppRVP                   R2P                  V4      # u upi )z%return an nodes.BoolOp node as stringr   )valuesrC   r   r7   )r   r   r8   r   s   &&  r   visit_boolopAsStringVisitor.visit_boolop   sL    AEMA,,T567MDGG9A$$V,, Ns   A
c                    V ^8  d   QhRRRR/# )r   r   znodes.Breakr   r   r   )r   s   "r   r   r      s        r   c                    R# )z$return an nodes.Break node as stringbreakr   r#   s   &&r   visit_breakAsStringVisitor.visit_break   s    r   c                    V ^8  d   QhRRRR/# )r   r   z
nodes.Callr   r   r   )r   s   "r   r   r      s     
0 
0z 
0c 
0r   c                j   V P                  WP                  4      pVP                   Uu. uF  q3P                  V 4      NK  	  ppVP                  '       d+   VP                   Uu. uF  qUP                  V 4      NK  	  ppM. pVP                  V4       V RRP                  V4       R2# u upi u upi )z#return an nodes.Call node as stringr@   rk   rA   )rC   funcargsr    keywordsextendr7   )r   r   expr_strargr   kwargr   s   &&     r   
visit_callAsStringVisitor.visit_call   s    **4;,0II6IS

4 I6===8<FuT*HFHHH1TYYt_-Q// 7Fs   B+%B0c                    V ^8  d   QhRRRR/# )r   type_paramsz:list[nodes.TypeVar | nodes.ParamSpec | nodes.TypeVarTuple]r   r   r   )r   s   "r   r   r      s     
 
U
	
r   c                	V   a  V'       d    R RP                  V 3R lV 4       4       R2# R# )[rk   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   )r3   tpr   s   & r   r5   6AsStringVisitor._handle_type_params.<locals>.<genexpr>   s     @Kb))D//Kr~   ]r)   )r7   )r   r   s   f&r   _handle_type_params#AsStringVisitor._handle_type_params   s5    
  		@K@@AC	
 	
r   c                    V ^8  d   QhRRRR/# )r   r   znodes.ClassDefr   r   r   )r   s   "r   r   r      s     
 
> 
c 
r   c           
        VP                   '       d   VP                   P                  V 4      MRpV P                  VP                  4      pVP                   Uu. uF  qDP                  V 4      NK  	  ppVP
                  '       dH   VP                  4       '       g2   VP                  RVP
                  P                  V 4      ,           4       YQP                   Uu. uF  qDP                  V 4      NK  	  up,          pV'       d   RRP                  V4       R2MRpV P                  VP                  4      pRP                  W!P                  W6WpP                  VP                  4      4      # u upi u upi )z'return an nodes.ClassDef node as stringr)   z
metaclass=r@   rk   rA   z

{}class {}{}{}:{}
{}
)
decoratorsr    r   r   bases
_metaclasshas_metaclass_hackappendr   r7   r+   r'   r   rs   r:   body)r   r   decorater   r8   r   args_strdocss   &&      r   visit_classdefAsStringVisitor.visit_classdef   s   37???4??))$/..t/?/?@(,

3
1
3???4#:#:#<#<KKt'='=d'CCD7A$77-1Qtyy'q)r  /,33iioodii>X
 	
 4 8s   E-E2c                    V ^8  d   QhRRRR/# )r   r   znodes.Comparer   r   r   )r   s   "r   r   r      s     G G- GC Gr   c                   a a RP                  VV 3R lSP                   4       4      pS P                  SSP                  4       RV 2# )z&return an nodes.Compare node as stringr   c           	   3  Z   <"   T F   w  rV R SP                  SVRR7       2x  K"  	  R# 5i)r   Fr   N)rC   )r3   r   exprr   r   s   &  r   r5   0AsStringVisitor.visit_compare.<locals>.<genexpr>   s8      
$ d!D++D$+FGH$s   (+)r7   opsrC   r   )r   r   rhs_strs   ff r   visit_compareAsStringVisitor.visit_compare   sG    (( 
 HH
 
 ))$		:;1WIFFr   c                    V ^8  d   QhRRRR/# )r   r   znodes.Comprehensionr   r   r   )r   s   "r   r   r      s     A A(; A Ar   c                   a  RP                  V 3R lVP                   4       4      pRVP                  P                  S 4       RVP                  P                  S 4       V 2pVP
                  '       d   RMR V 2# )z,return an nodes.Comprehension node as stringr)   c              3  L   <"   T F  pR VP                  S4       2x  K  	  R# 5i) if Nr{   r|   s   & r   r5   6AsStringVisitor.visit_comprehension.<locals>.<genexpr>   s!     @x!QXXd^,-xs   !$zfor z in rT   )r7   ifsr   r    iteris_async)r   r   r   	generateds   f&  r   visit_comprehension#AsStringVisitor.visit_comprehension   sm    gg@txx@@4;;--d34D9I9I$9O8PQTPUV	"mmm(4YK@@r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Constr   r   r   )r   s   "r   r   r      s            r   c                X    VP                   \        J d   R# \        VP                   4      # )z$return an nodes.Const node as stringz...)r*   Ellipsisreprr#   s   &&r   visit_constAsStringVisitor.visit_const   s     ::!DJJr   c                    V ^8  d   QhRRRR/# )r   r   znodes.Continuer   r   r   )r   s   "r   r   r      s      > c r   c                    R# )z'return an nodes.Continue node as stringcontinuer   r#   s   &&r   visit_continueAsStringVisitor.visit_continue   s    r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Deleter   r   r   )r   s   "r   r   r      s     P P P# Pr   c                T   a  RRP                  V 3R lVP                   4       4       2# )z%return an nodes.Delete node as stringzdel rk   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r3   r=   r   s   & r   r5   /AsStringVisitor.visit_delete.<locals>.<genexpr>   s     MuT 2 2r~   )r7   r   r#   s   f&r   visit_deleteAsStringVisitor.visit_delete   s$    diiMMMNOOr   c                    V ^8  d   QhRRRR/# )r   r   znodes.DelAttrr   r   r   )r   s   "r   r   r      s     * *- *C *r   c                $    V P                  V4      # )z&return an nodes.DelAttr node as stringrd   r#   s   &&r   visit_delattrAsStringVisitor.visit_delattr   rh   r   c                    V ^8  d   QhRRRR/# )r   r   znodes.DelNamer   r   r   )r   s   "r   r   r      s      - C r   c                    VP                   # )z&return an nodes.DelName node as stringrr   r#   s   &&r   visit_delnameAsStringVisitor.visit_delname   rv   r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Decoratorsr   r   r   )r   s   "r   r   r      s     N N%5 N# Nr   c                \   a  RRP                  V 3R lVP                   4       4      ,          # )z)return an nodes.Decorators node as stringz@%s
z
@c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   )r3   itemr   s   & r   r5   3AsStringVisitor.visit_decorators.<locals>.<genexpr>   s     #M*$KK$5$5*r~   )r7   r   r#   s   f&r   visit_decorators AsStringVisitor.visit_decorators   s!    #M$**#MMMMr   c                    V ^8  d   QhRRRR/# )r   r   
nodes.Dictr   r   r   )r   s   "r   r   r      s     : :z :c :r   c                P    RRP                  V P                  V4      4      ,          # )z#return an nodes.Dict node as string{%s}rk   )r7   _visit_dictr#   s   &&r   
visit_dictAsStringVisitor.visit_dict   s!    		$"2"24"8999r   c                    V ^8  d   QhRRRR/# )r   r   r   r   zIterator[str]r   )r   s   "r   r   r      s     ( (
 (} (r   c              #  	   "   VP                    FC  w  r#VP                  V 4      pVP                  V 4      pVR 8X  d   W#,           x  K:  V RV 2x  KE  	  R# 5i)r   r   N)itemsr    )r   r   keyr*   s   &&  r   r   AsStringVisitor._visit_dict   sQ     **JC**T"CLL&Ed{k!Rw'' %s   AAc                    V ^8  d   QhRRRR/# )r   r   znodes.DictUnpackr   r   r   )r   s   "r   r   r      s      %5 # r   c                	    R # )r   r   r#   s   &&r   visit_dictunpack AsStringVisitor.visit_dictunpack   s    r   c                    V ^8  d   QhRRRR/# )r   r   znodes.DictCompr   r   r   )r   s   "r   r   r      s     
 
> 
c 
r   c                   a  RP                  VP                  P                  S 4      VP                  P                  S 4      RP	                  V 3R lVP
                   4       4      4      # )z'return an nodes.DictComp node as stringz{{{}: {} {}}}r   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r|   s   & r   r5   1AsStringVisitor.visit_dictcomp.<locals>.<genexpr>   s     =_XXd^^_r~   )r   r  r    r*   r7   
generatorsr#   s   f&r   visit_dictcompAsStringVisitor.visit_dictcomp   sN    %%HHOOD!JJd#HH=T__==
 	
r   c                    V ^8  d   QhRRRR/# )r   r   z
nodes.Exprr   r   r   )r   s   "r   r   r      s     ' 'z 'c 'r   c                8    VP                   P                  V 4      # )z#return an nodes.Expr node as stringrN   r#   s   &&r   
visit_exprAsStringVisitor.visit_expr       zz  &&r   c                    V ^8  d   QhRRRR/# r   r   znodes.EmptyNoder   r   r   )r   s   "r   r   r      s      O  r   c                    R# )z&dummy method for visiting an EmptyNoder)   r   r#   s   &&r   visit_emptynodeAsStringVisitor.visit_emptynode       r   c                    V ^8  d   QhRRRR/# )r   r   znodes.ExceptHandlerr   r   r   )r   s   "r   r   r     s     8 8(; 8 8r   c                	   R p\        \        VRR4      \        P                  4      '       d   RpVP                  '       dq   VP
                  '       d>   V RVP                  P                  V 4       RVP
                  P                  V 4       2pM$V RVP                  P                  V 4       2pMT pV RV P                  VP                  4       2# )exceptparentNzexcept*r    as :
)	
isinstancegetattrr   TryStartypers   r    r:   r   )r   r   r8   excss   &&  r   visit_excepthandler#AsStringVisitor.visit_excepthandler  s    gdHd3U]]CCA999yyyAdii..t45T$)):J:J4:P9QRAdii..t456SDs4??4995677r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     s       C r   c                    R# )zreturn an EmptyNode as stringr)   r   r#   s   &&r   visit_emptyAsStringVisitor.visit_empty  r  r   c                    V ^8  d   QhRRRR/# )r   r   z	nodes.Forr   r   r   )r   s   "r   r   r     s      i C r   c                &   RP                  VP                  P                  V 4      VP                  P                  V 4      V P	                  VP
                  4      4      pVP                  '       d!   V RV P	                  VP                  4       2pV# )z"return an nodes.For node as stringzfor {} in {}:
{}
else:
)r   r   r    r   r:   r   orelse)r   r   forss   && r   rZ   AsStringVisitor.visit_for  sr    "))KKt$dii&6&6t&<doodii>X
 ;;;V9T__T[[%A$BCDr   c                    V ^8  d   QhRRRR/# )r   r   znodes.ImportFromr   r   r   )r   s   "r   r   r     s     
 
%5 
# 
r   c                    RP                  RVP                  ;'       g    ^ ,          VP                  ,           \        VP                  4      4      # )z)return an nodes.ImportFrom node as stringzfrom {} import {}.)r   levelmodname_import_stringnamesr#   s   &&r   visit_importfrom AsStringVisitor.visit_importfrom  s;    "))4::??#dll2N4::4N
 	
r   c                    V ^8  d   QhRRRR/# )r   r   znodes.JoinedStrr   r   r   )r   s   "r   r   r   $  s     , ,O , ,r   c                	   a  R P                  V 3R lVP                   4       4      pR F  pW29  g   K   M	  RX,           V,           V,           # )r)   c              3     <"   T Fh  p\        V4      P                  R 8X  d9   \        VP                  4      ^R P	                  RR4      P	                  RR4      MVP                  S4      x  Kj  	  R# 5i)Const{z{{}z}}N)r$  __name__r   r*   r!   r    )r3   r*   r   s   & r   r5   2AsStringVisitor.visit_joinedstr.<locals>.<genexpr>%  sj      
 % ;''72 U[[!!B'd#GGC$6 \\$'( %s   A0A3f'""""z''')r7   r   )r   r   stringquotes   f&  r   visit_joinedstrAsStringVisitor.visit_joinedstr$  sO     
 
 
( .E" . U{V#e++r   c                    V ^8  d   QhRRRR/# )r   r   znodes.FormattedValuer   r   r   )r   s   "r   r   r   ?  s     	 	)= 	# 	r   c                	R   VP                   P                  V 4      pVP                  '       d5   VP                  ^ 8  d$   VR\        VP                  4      ,           ,          pVP                  '       d-   VRVP                  P                  V 4      ^R ,           ,          pRV,          # )    !:r   rA  )r*   r    
conversionchrformat_specr   r   results   && r   visit_formattedvalue$AsStringVisitor.visit_formattedvalue?  s    ""4(???t!3cC000F cD,,33D9!B???Fr   c               $    V ^8  d   QhRRRRRR/# )r   r   nodes.FunctionDefkeywordr   r   r   )r   s   "r   r   r   J  s"     
 
'8 
3 
3 
r   c                   VP                   '       d   VP                   P                  V 4      MRpV P                  VP                  4      pV P	                  VP
                  4      pRpVP                  '       d+   RVP                  P                  4       ,           pVR,           pRpVVVVP                  VVP                  P                  V 4      VVV P                  VP                  4      3,          # )z<return a (possibly async) function definition node as stringr)   rQ  z -> z
%s%s %s%s(%s)%s%s
%s)r   r    r   r   r+   r'   returns	as_stringrs   r   r:   r   )	r   r   r[  r   r   r   trailerreturn_annotation
def_formats	   &&&      r   handle_functiondef"AsStringVisitor.handle_functiondefJ  s    37???4??))$/..t/?/?@  /<<< &)?)?)A A'#-G.
IIIIT"OODII&	
 	
 		
r   c                    V ^8  d   QhRRRR/# )r   r   rZ  r   r   r   )r   s   "r   r   r   _  s     4 4&7 4C 4r   c                &    V P                  VR4      # )z*return an nodes.FunctionDef node as stringdefrb  r#   s   &&r   visit_functiondef!AsStringVisitor.visit_functiondef_  s    &&tU33r   c                    V ^8  d   QhRRRR/# )r   r   znodes.AsyncFunctionDefr   r   r   )r   s   "r   r   r   c  s     : :+A :c :r   c                &    V P                  VR4      # )z,return an nodes.AsyncFunction node as stringz	async defrg  r#   s   &&r   visit_asyncfunctiondef&AsStringVisitor.visit_asyncfunctiondefc  s    &&t[99r   c                    V ^8  d   QhRRRR/# )r   r   znodes.GeneratorExpr   r   r   )r   s   "r   r   r   g  s     
 
'9 
c 
r   c                   a  RP                  VP                  P                  S 4      RP                  V 3R lVP                   4       4      4      # )z+return an nodes.GeneratorExp node as stringz({} {})r   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r|   s   & r   r5   5AsStringVisitor.visit_generatorexp.<locals>.<genexpr>j       +TOqHHTNNOr~   r   eltr    r7   r  r#   s   f&r   visit_generatorexp"AsStringVisitor.visit_generatorexpg  ;    HHOOD!388+TDOO+T#T
 	
r   c                    V ^8  d   QhRRRR/# )r   r   z2nodes.Attribute | nodes.AssignAttr | nodes.DelAttrr   r   r   )r   s   "r   r   r   m  s     ) )F)	)r   c                .    V P                  WP                  4      pVP                  4       '       d   RV R2pV RVP                   2#   \         d@    \        P                  ! R\
        ^R7       RTP                  P                  T 4       R2p Lvi ; i)z(return an nodes.Attribute node as stringz<Recursion limit exhausted; defaulting to adding parentheses.)
stacklevelr@   rA   r4  )	rC   r   RecursionErrorwarningswarnUserWarningr    isdigitattrname)r   r   r   s   && r   re   AsStringVisitor.visit_attributem  s    	1**4;D <<>>tfA;Dq((  	1MMN
 tyy''-.a0D	1s   A
 
ABBc                    V ^8  d   QhRRRR/# )r   r   znodes.Globalr   r   r   )r   s   "r   r   r   ~  s     1 1 1# 1r   c                >    RRP                  VP                  4       2# )z%return an nodes.Global node as stringzglobal rk   r7   r8  r#   s   &&r   visit_globalAsStringVisitor.visit_global~  s    4::./00r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Ifr   r   r   )r   s   "r   r   r     s      X # r   c                   RVP                   P                  V 4       RV P                  VP                  4       2.pVP	                  4       '       d1   VP                  RV P                  VP                  RR7       24       M?VP                  '       d.   VP                  RV P                  VP                  4       24       RP                  V4      # )z!return an nodes.If node as stringzif r   elFr   else:
r   )rm   r    r:   r   has_elif_blockr   r/  r7   )r   r   r   s   && r   visit_ifAsStringVisitor.visit_if  s    TYY%%d+,C		0J/KLM  JJDOODKKOFGHI[[[JJ!= >?@yy~r   c                    V ^8  d   QhRRRR/# )r   r   znodes.IfExpr   r   r   )r   s   "r   r   r     s     
 
 
 
r   c           
         RP                  V P                  WP                  RR7      V P                  WP                  RR7      V P                  WP                  RR7      4      # )z$return an nodes.IfExp node as stringz{} if {} else {}Tr   F)r   rC   r   rm   r/  r#   s   &&r   visit_ifexpAsStringVisitor.visit_ifexp  sZ    !((##D))T#B##D))T#B##D++u#E
 	
r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Importr   r   r   )r   s   "r   r   r     s     6 6 6# 6r   c                2    R\        VP                  4       2# )z%return an nodes.Import node as stringzimport )r7  r8  r#   s   &&r   visit_importAsStringVisitor.visit_import  s    

3455r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Keywordr   r   r   )r   s   "r   r   r     s     7 7- 7C 7r   c                    VP                   f   RVP                  P                  V 4       2# VP                    RVP                  P                  V 4       2# )z&return an nodes.Keyword node as stringr   =)r   r*   r    r#   s   &&r   visit_keywordAsStringVisitor.visit_keyword  sN    88

))$/011((1TZZ..t4566r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Lambdar   r   r   )r   s   "r   r   r     s     ! ! !# !r   c                    VP                   P                  V 4      pVP                  P                  V 4      pV'       d	   RV RV 2# RV 2# )z%return an nodes.Lambda node as stringzlambda r   zlambda: )r   r    r   )r   r   r   r   s   &&  r   visit_lambdaAsStringVisitor.visit_lambda  sM    yy%yy%TF"TF++$  r   c                    V ^8  d   QhRRRR/# )r   r   z
nodes.Listr   r   r   )r   s   "r   r   r     s     K Kz Kc Kr   c                V   a  RRP                  V 3R lVP                   4       4       R2# )z#return an nodes.List node as stringr   rk   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r   s   & r   r5   -AsStringVisitor.visit_list.<locals>.<genexpr>       GYE\\$//Yr~   r   r7   eltsr#   s   f&r   
visit_listAsStringVisitor.visit_list  s&    499GTYYGGHJJr   c                    V ^8  d   QhRRRR/# )r   r   znodes.ListCompr   r   r   )r   s   "r   r   r     s     
 
> 
c 
r   c                   a  RP                  VP                  P                  S 4      RP                  V 3R lVP                   4       4      4      # )z'return an nodes.ListComp node as stringz[{} {}]r   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r|   s   & r   r5   1AsStringVisitor.visit_listcomp.<locals>.<genexpr>  rr  r~   rs  r#   s   f&r   visit_listcompAsStringVisitor.visit_listcomp  rw  r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Moduler   r   r   )r   s   "r   r   r     s     L L L# Lr   c                   a  VP                   '       d   RVP                   P                   R2MRpVRP                  V 3R lVP                   4       4      ,           R,           # )z%return an nodes.Module node as stringrH  z"""

r)   r   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r|   s   & r   r5   /AsStringVisitor.visit_module.<locals>.<genexpr>  s     B	1	r~   z

)r'   r*   r7   r   )r   r   r   s   f& r   visit_moduleAsStringVisitor.visit_module  sI    59]]]T]](()1diiB		BBBVKKr   c                    V ^8  d   QhRRRR/# )r   r   z
nodes.Namer   r   r   )r   s   "r   r   r     s      z c r   c                    VP                   # )z#return an nodes.Name node as stringrr   r#   s   &&r   
visit_nameAsStringVisitor.visit_name  rv   r   c                    V ^8  d   QhRRRR/# )r   r   znodes.NamedExprr   r   r   )r   s   "r   r   r     s     & &O & &r   c                |    VP                   P                  V 4      pVP                  P                  V 4      pV RV 2# )z.Return an assignment expression node as stringz := )r   r    r*   )r   r   r   r*   s   &&  r   visit_namedexprAsStringVisitor.visit_namedexpr  s;    ##D)

!!$'eW%%r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Nonlocalr   r   r   )r   s   "r   r   r     s     3 3> 3c 3r   c                >    RRP                  VP                  4       2# )z'return an nodes.Nonlocal node as stringz	nonlocal rk   r  r#   s   &&r   visit_nonlocalAsStringVisitor.visit_nonlocal  s    499TZZ0122r   c                    V ^8  d   QhRRRR/# )r   r   znodes.ParamSpecr   r   r   )r   s   "r   r   r     s     @ @O @ @r   c                    VP                   '       d   RVP                   P                  V 4       2MRpRVP                  P                  V 4       V 2# )z(return an nodes.ParamSpec node as stringry   r)   r   default_valuer    rs   r   r   default_value_strs   && r   visit_paramspecAsStringVisitor.visit_paramspec  sW     8<7I7I7Ic$$$++D123r 	 DII$$T*+,=+>??r   c                    V ^8  d   QhRRRR/# )r   r   z
nodes.Passr   r   r   )r   s   "r   r   r     s      z c r   c                    R# )z#return an nodes.Pass node as stringpassr   r#   s   &&r   
visit_passAsStringVisitor.visit_pass  s    r   c                    V ^8  d   QhRRRR/# )r   r   zobjects.PartialFunctionr   r   r   )r   s   "r   r   r     s     , ,*A ,c ,r   c                $    V P                  V4      # )z,Return an objects.PartialFunction as string.)rh  r#   s   &&r   visit_partialfunction%AsStringVisitor.visit_partialfunction  s    %%d++r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Raiser   r   r   )r   s   "r   r   r     s        r   c                    VP                   '       dk   VP                  '       d;   RVP                   P                  V 4       RVP                  P                  V 4       2# RVP                   P                  V 4       2# R# )z$return an nodes.Raise node as stringzraise z from raise)exccauser    r#   s   &&r   visit_raiseAsStringVisitor.visit_raise  sc    888zzz 56fTZZ=N=Nt=T<UVVDHHOOD1233r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Returnr   r   r   )r   s   "r   r   r     s     	 	 	# 	r   c                r   VP                  4       '       dl   \        VP                  P                  4      ^8  dH   VP                  P                   Uu. uF  q"P	                  V 4      NK  	  ppRRP                  V4       2# VP                  '       d   RVP                  P	                  V 4       2# R# u upi )z%return an nodes.Return node as stringzreturn rk   r   )is_tuple_returnlenr*   r  r    r7   )r   r   r=   r  s   &&  r   visit_returnAsStringVisitor.visit_return  s    !!c$**//&:Q&>48JJOODO5LL&ODDTYYt_-..:::TZZ..t4566 Es   B4c                    V ^8  d   QhRRRR/# )r   r   z	nodes.Setr   r   r   )r   s   "r   r   r     s     M Mi MC Mr   c                \   a  RRP                  V 3R lVP                   4       4      ,          # )z"return an nodes.Set node as stringr   rk   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r   s   & r   r5   ,AsStringVisitor.visit_set.<locals>.<genexpr>  s     !L),,t"4"4)r~   r  r#   s   f&r   	visit_setAsStringVisitor.visit_set  s!    		!L$))!LLLLr   c                    V ^8  d   QhRRRR/# )r   r   znodes.SetCompr   r   r   )r   s   "r   r   r     s     
 
- 
C 
r   c                   a  RP                  VP                  P                  S 4      RP                  V 3R lVP                   4       4      4      # )z&return an nodes.SetComp node as stringz	{{{} {}}}r   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r|   s   & r   r5   0AsStringVisitor.visit_setcomp.<locals>.<genexpr>  rr  r~   rs  r#   s   f&r   visit_setcompAsStringVisitor.visit_setcomp  s;    !!HHOOD!388+TDOO+T#T
 	
r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Slicer   r   r   )r   s   "r   r   r     s     " " " "r   c                N   VP                   '       d   VP                   P                  V 4      MRpVP                  '       d   VP                  P                  V 4      MRpVP                  '       d   VP                  P                  V 4      MRpV'       d   V RV RV 2# V RV 2# )z$return an nodes.Slice node as stringr)   rQ  )lowerr    upperstep)r   r   r  r  r  s   &&   r   visit_sliceAsStringVisitor.visit_slice  s    +/:::

!!$'2+/:::

!!$'2)-tyy%WAeWAdV,,%!!r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Subscriptr   r   r   )r   s   "r   r   r     s     
H 
HO 
H 
Hr   c                h   VP                   pVP                  P                  P                  4       R8X  d   VP                  pVP                  V 4      pVP                  P                  P                  4       R8X  d   VP                  '       d   V^R pV P                  WP                  4       RV R2# )z(return an nodes.Subscript node as stringindextupler   r   rA  )slice	__class__rB  r  r*   r    r  rC   )r   r   idxidxstrs   &&  r   visit_subscriptAsStringVisitor.visit_subscript  s    jj==!!'')W4))CD!==!!'')W4 Ab\F))$

;<AfXQGGr   c                    V ^8  d   QhRRRR/# )r   r   z	nodes.Tryr   r   r   )r   s   "r   r   r     s     	 	i 	C 	r   c                   RV P                  VP                  4       2.pVP                   F#  pVP                  VP	                  V 4      4       K%  	  VP
                  '       d.   VP                  RV P                  VP
                  4       24       VP                  '       d.   VP                  RV P                  VP                  4       24       RP                  V4      # )z"return an nodes.Try node as stringtry:
r  	finally:
r   r:   r   handlersr   r    r/  	finalbodyr7   r   r   tryshandlers   &&  r   	visit_tryAsStringVisitor.visit_try      3456}}GKKt,- %;;;KK'$//$++">!?@A>>>KK*T__T^^%D$EFGyyr   c                    V ^8  d   QhRRRR/# )r   r   znodes.TryStarr   r   r   )r   s   "r   r   r     s     	 	- 	C 	r   c                   RV P                  VP                  4       2.pVP                   F#  pVP                  VP	                  V 4      4       K%  	  VP
                  '       d.   VP                  RV P                  VP
                  4       24       VP                  '       d.   VP                  RV P                  VP                  4       24       RP                  V4      # )z&return an nodes.TryStar node as stringr  r  r  r   r  r  s   &&  r   visit_trystarAsStringVisitor.visit_trystar  r  r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Tupler   r   r   )r   s   "r   r   r     s     K K K Kr   c                   a  \        VP                  4      ^8X  d'   RVP                  ^ ,          P                  S 4       R2# RRP                  V 3R lVP                   4       4       R2# )z$return an nodes.Tuple node as stringr@   z, )rk   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r   s   & r   r5   .AsStringVisitor.visit_tuple.<locals>.<genexpr>  r  r~   rA   )r  r  r    r7   r#   s   f&r   visit_tupleAsStringVisitor.visit_tuple  sY    tyy>Qtyy|**40155499GTYYGGHJJr   c                    V ^8  d   QhRRRR/# )r   r   znodes.TypeAliasr   r   r   )r   s   "r   r   r      s     Y YO Y Yr   c                    V P                  VP                  4      pRVP                  P                  V 4       V RVP                  P                  V 4       2# )z(return an nodes.TypeAlias node as stringztype ry   )r   r   rs   r    r*   )r   r   r   s   && r   visit_typealiasAsStringVisitor.visit_typealias   sP    ..t/?/?@tyy''-.{m3tzz?P?PQU?V>WXXr   c                    V ^8  d   QhRRRR/# )r   r   znodes.TypeVarr   r   r   )r   s   "r   r   r   %  s     I I- IC Ir   c                   VP                   '       d   RVP                   P                  V 4       2MRpVP                  '       d   RVP                  P                  V 4       2MRpVP                  P                  V 4       V V 2# )z&return an nodes.TypeVar node as stringr   r)   ry   )boundr    r  rs   )r   r   	bound_strr  s   &&  r   visit_typevarAsStringVisitor.visit_typevar%  s}    6:jjjb**4012b	7;7I7I7Ic$$$++D123r 	 ))""4())5F4GHHr   c                    V ^8  d   QhRRRR/# )r   r   znodes.TypeVarTupler   r   r   )r   s   "r   r   r   -  s     ? ?'9 ?c ?r   c                    VP                   '       d   RVP                   P                  V 4       2MRpRVP                  P                  V 4       V 2# )z+return an nodes.TypeVarTuple node as stringry   r)   *r  r  s   && r   visit_typevartuple"AsStringVisitor.visit_typevartuple-  sW     8<7I7I7Ic$$$++D123r 	 499##D)*+<*=>>r   c                    V ^8  d   QhRRRR/# )r   r   znodes.UnaryOpr   r   r   )r   s   "r   r   r   4  s     J J- JC Jr   c                    VP                   R8X  d   RpMVP                   pV V P                  WP                  4       2# )z&return an nodes.UnaryOp node as stringnotznot )r   rC   operand)r   r   operators   && r   visit_unaryopAsStringVisitor.visit_unaryop4  s;    77eHwwHD33D,,GHIIr   c                    V ^8  d   QhRRRR/# )r   r   znodes.Whiler   r   r   )r   s   "r   r   r   <  s        r   c                    RVP                   P                  V 4       RV P                  VP                  4       2pVP                  '       d!   V RV P                  VP                  4       2pV# )z$return an nodes.While node as stringzwhile r   r.  )rm   r    r:   r   r/  )r   r   whiless   && r   visit_whileAsStringVisitor.visit_while<  s^    $))**401T__TYY5O4PQ;;;xy)E(FGFr   c                    V ^8  d   QhRRRR/# )r   r   z
nodes.Withr   r   r   )r   s   "r   r   r   C  s     > >z >c >r   c                   a  RP                  V 3R lVP                   4       4      pRV RS P                  VP                  4       2# )z#return an nodes.With node as stringrk   c              3     <"   T FF  w  rVP                  S4       T;'       d    R VP                  S4       2;'       g    R,           x  KH  	  R# 5i)r  r)   Nr{   )r3   r   vr   s   &  r   r5   -AsStringVisitor.visit_with.<locals>.<genexpr>E  sN      
% {{4 !q'D'DtAHHTN3C-D&K&KLL%s    AA Azwith r   )r7   r  r:   r   )r   r   r  s   f& r   rU   AsStringVisitor.visit_withC  sE    		 
::
 
 ugS!; <==r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Yieldr   r   r   )r   s   "r   r   r   K  s        r   c                    VP                   '       d#   RVP                   P                  V 4      ,           MRpRV,           pVP                  P                  '       d   V# RV R2# )z!yield an ast.Yield node as stringr   r)   yieldr@   rA   r*   r    r  is_statementr   r   yi_valr   s   &&  r   visit_yieldAsStringVisitor.visit_yieldK  sR    48JJJ#

))$//B;;###K4&{r   c                    V ^8  d   QhRRRR/# )r   r   znodes.YieldFromr   r   r   )r   s   "r   r   r   T  s      O  r   c                    VP                   '       d#   RVP                   P                  V 4      ,           MRpRV,           pVP                  P                  '       d   V# RV R2# )z)Return an nodes.YieldFrom node as string.r   r)   z
yield fromr@   rA   r6  r8  s   &&  r   visit_yieldfromAsStringVisitor.visit_yieldfromT  sR    48JJJ#

))$//Bf$;;###K4&{r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Starredr   r   r   )r   s   "r   r   r   ]  s     - -- -C -r   c                F    RVP                   P                  V 4      ,           # )zreturn Starred node as stringr  rN   r#   s   &&r   visit_starredAsStringVisitor.visit_starred]  s    TZZ&&t,,,r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Matchr   r   r   )r   s   "r   r   r   a  s     T T T Tr   c                v    RVP                   P                  V 4       RV P                  VP                  4       2# )z%Return an nodes.Match node as string.zmatch r   )subjectr    r:   casesr#   s   &&r   visit_matchAsStringVisitor.visit_matcha  s3    ++D12#doodjj6Q5RSSr   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchCaser   r   r   )r   s   "r   r   r   e  s     
 
O 
 
r   c                    VP                   '       d   RVP                   P                  V 4       2MRpRVP                  P                  V 4       V RV P                  VP                  4       2# )z)Return an nodes.MatchCase node as string.r   r)   zcase r   )guardr    patternr:   r   )r   r   	guard_strs   && r   visit_matchcaseAsStringVisitor.visit_matchcasee  sb    8<


d4::,,T234	DLL''-.yktyy)*,	
r   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchValuer   r   r   )r   s   "r   r   r   m  s     ' '%5 '# 'r   c                8    VP                   P                  V 4      # )z*Return an nodes.MatchValue node as string.rN   r#   s   &&r   visit_matchvalue AsStringVisitor.visit_matchvaluem  r  r   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchSingletonr   r   r   )r   s   "r   r   r   r  s      #7 C r   c                ,    \        V P                  4      # )z.Return an nodes.MatchSingleton node as string.)r   r*   )r   s   &r   visit_matchsingleton$AsStringVisitor.visit_matchsingletonq  s     4::r   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchSequencer   r   r   )r   s   "r   r   r   v  s     G G(; G Gr   c                v   a  VP                   f   R# RRP                  V 3R lVP                    4       4       R2# )z-Return an nodes.MatchSequence node as string.z[]r   rk   c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r3   pr   s   & r   r5   6AsStringVisitor.visit_matchsequence.<locals>.<genexpr>z  s     C]XXd^^]r~   r   )patternsr7   r#   s   f&r   visit_matchsequence#AsStringVisitor.visit_matchsequencev  s3    == 499CT]]CCDAFFr   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchMappingr   r   r   )r   s   "r   r   r   |  s     
9 
9'9 
9c 
9r   c                n  a  . pVP                   '       dL   VP                  '       d:   VP                  V 3R l\        VP                   VP                  4       4       4       VP                  '       d.   VP                  RVP                  P                  S 4       24       R RP                  V4       R 2# )z-Return an nodes..MatchMapping node as string.c              3  r   <"   T F,  w  rVP                  S4       R VP                  S4       2x  K.  	  R# 5i)r   Nr{   )r3   r  r]  r   s   &  r   r5   5AsStringVisitor.visit_matchmapping.<locals>.<genexpr>  s8      #;FC ::d#$Bqxx~&67;s   47r   r?  rk   r@  )keysr_  r   ziprestr   r    r7   )r   r   mapping_stringss   f& r   visit_matchmapping"AsStringVisitor.visit_matchmapping|  s    %'999"" #!$))T]];#  999""R		(8(8(>'?#@Atyy123%88r   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchClassr   r   r   )r   s   "r   r   r     s     
F 
F%5 
F# 
Fr   c                  a  VP                   f   \        V R24      h. pVP                  '       d&   VP                  V 3R lVP                   4       4       VP                  '       da   VP
                  '       dO   \        VP                  VP
                  4       F*  w  r4VP                  V RVP                  S 4       24       K,  	  VP                   P                  S 4       RRP                  V4       R2# )z+Return an nodes..MatchClass node as string.z does not have a 'cls' nodec              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r\  s   & r   r5   3AsStringVisitor.visit_matchclass.<locals>.<genexpr>  s      GA$r~   r  r@   rk   rA   )
clsAssertionErrorr_  r   	kwd_attrskwd_patternsrg  r   r    r7   )r   r   class_stringsattrrM  s   f&   r   visit_matchclass AsStringVisitor.visit_matchclass  s    88 D6)D!EFF#%===   G GG>>>d///!$T^^T5F5F!G$$vQw~~d/C.D%EF "H((//$'($))M*B)C1EEr   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchStarr   r   r   )r   s   "r   r   r     s     B BO B Br   c                j    RVP                   '       d   VP                   P                  V 4       2# R 2# )z*Return an nodes..MatchStar node as string.r  _)rs   r    r#   s   &&r   visit_matchstarAsStringVisitor.visit_matchstar  s2    TYYY499##D)@AAC@AAr   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchAsr   r   r   )r   s   "r   r   r     s     	
 	
- 	
C 	
r   c                   \        VP                  \        P                  \        P                  \        P
                  34      '       d0   VP                  '       d   VP                  P                  V 4      # R# VP                  '       d   VP                  P                  V 4      MR VP                  '       d!   RVP                  P                  V 4       2 2# R 2# )z(Return an nodes..MatchAs node as string.rz  r  r)   )	r!  r  r   MatchSequenceMatchMapping
MatchClassrs   r    rM  r#   s   &&r   visit_matchasAsStringVisitor.visit_matchas  s    KK%--u/A/A5CSCST
 
 .2YYY499##D)?C?,0LLLt||""4(cB26)))dii&&t,-.DF	
ACDF	
r   c                    V ^8  d   QhRRRR/# )r   r   znodes.MatchOrr   r   r   )r   s   "r   r   r     s     A A- AC Ar   c                   a  VP                   f   \        V R24      hRP                  V 3R lVP                    4       4      # )z'Return an nodes.MatchOr node as string.z does not have pattern nodesz | c              3  D   <"   T F  qP                  S4      x  K  	  R # 5ir   r{   r\  s   & r   r5   0AsStringVisitor.visit_matchor.<locals>.<genexpr>  s     @-Q((4..-r~   )r_  rq  r7   r#   s   f&r   visit_matchorAsStringVisitor.visit_matchor  s9    ==  D6)E!FGGzz@$--@@@r   c                    V ^8  d   QhRRRR/# )r   r   znodes.TemplateStrr   r   r   )r   s   "r   r   r     s     , ,&7 ,C ,r   c                4   RpVP                    F_  pV\        P                  Rc ;e+   w   VRVP                  V 4      ,           R,           ,          pKC    W#P                  V 4      ^R ,          pKa  	  R F  pWB9  g   K   M	  RX,           V,           V,           # )z+Return an nodes.TemplateStr node as string.r)   r   r?  r@  trA  rE  )r   r   Interpolationr    )r   r   rI  r*   rJ  s   &&   r   visit_templatestr!AsStringVisitor.visit_templatestr  s    [[E((*cELL$66<<F +ll40266F ! .E" . U{V#e++r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Interpolationr   r   r   )r   s   "r   r   r     s     
 
(; 
 
r   c                (   VP                    pVP                  '       d5   VP                  ^ 8  d$   VR\        VP                  4      ,           ,          pVP                  '       d-   VRVP                  P	                  V 4      ^R ,           ,          pV# )z-Return an nodes.Interpolation node as string.rP  rQ  rA  )r   rR  rS  rT  r    rU  s   && r   visit_interpolation#AsStringVisitor.visit_interpolation  ss    HH:???t!3cC000F cD,,33D9!B???Fr   c                    V ^8  d   QhRRRR/# )r   r   zobjects.FrozenSetr   r   r   )r   s   "r   r   r     s     ( ($5 (# (r   c                	8    VP                   P                  V 4      # r   r  r    r#   s   &&r   visit_frozensetAsStringVisitor.visit_frozenset      {{!!$''r   c                    V ^8  d   QhRRRR/# )r   r   zobjects.Superr   r   r   )r   s   "r   r   r     s     ( ( (# (r   c                	8    VP                   P                  V 4      # r   r  r#   s   &&r   visit_superAsStringVisitor.visit_super  r  r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r     s       r   c                	    \        V4      # r   r   r#   s   &&r   visit_uninferable!AsStringVisitor.visit_uninferable      4yr   c                    V ^8  d   QhRRRR/# )r   r   zobjects.Propertyr   r   r   )r   s   "r   r   r     s     * *#3 * *r   c                	8    VP                   P                  V 4      # r   )functionr    r#   s   &&r   visit_propertyAsStringVisitor.visit_property      }}##D))r   c                    V ^8  d   QhRRRR/# )r   r   znodes.EvaluatedObjectr   r   r   )r   s   "r   r   r     s     * **? *C *r   c                	8    VP                   P                  V 4      # r   )originalr    r#   s   &&r   visit_evaluatedobject%AsStringVisitor.visit_evaluatedobject  r  r   c                    V ^8  d   QhRRRR/# )r   r   znodes.Unknownr   r   r   )r   s   "r   r   r     s      - C r   c                	    \        V4      # r   r  r#   s   &&r   visit_unknownAsStringVisitor.visit_unknown  r  r   r   N)    )T)irB  
__module____qualname____firstlineno____doc__r   r$   r+   r:   rC   rB   rO   rV   r[   r`   rf   rn   rt   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*  rZ   r9  rK  rW  rb  rh  rl  ru  re   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+  rU   r:  r>  rB  rH  rO  rS  staticmethodrW  r`  rj  rv  r{  r  r  r  r  r  r  r  r  r  r  __static_attributes__r   r   r   r	   r	      s   I"<
I"420/"*24
QE+-

0

GA P*N:(
'8
,6	
*4:
)"1
67!K
L
&3@,	M
"
H		KY
I?J>-T
'  G
9
FB	
A,
((** r   r	   c                    V ^8  d   QhRRRR/# )r   r8  zlist[tuple[str, str | None]]r   r   r   )r   s   "r   r   r     s      6 3 r   c                    . pV  F2  w  r#Ve   VP                  V RV 24       K!  VP                  V4       K4  	  RP                  V4      # )z5return a list of (name, asname) formatted as a stringr  rk   )r   r7   )r8  _namesrs   asnames   &   r   r7  r7    sM    FMMTF$vh/0MM$	 
 99Vr   r  )r  
__future__r   r|  collections.abcr   typingr   astroidr   r   r"   r	   r7  to_coder   r   r   <module>r     sD   
 2 "  $    
|
 |
~ &
!r   