
    z%if;                        	 d dl mZ d dlmZmZ d dlmZ d dlm	Z	 d Z
d Zd Zd Zd,d
Zd Zd Zd Z e        e       fdZd-dZd Zd Zd,dZd Zd,dZd,dZd Zd Zd Zd Zd Zh dZd Z da!da"da#d a$d! Z%d" Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,ejZ                  ej\                  hZ/d,d)Z0ej\                  ejZ                  ejb                  hZ2d* Z3d,d+Z4y	).   )token)LeafNode)python_symbols)patcompc                 l    t        t        j                  | t        t        j
                  d      |g      S )N=)r   symsargumentr   r   EQUAL)keywordvalues     F/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/lib2to3/fixer_util.py
KeywordArgr      s*    $u{{C0%8: :    c                  6    t        t        j                  d      S )N()r   r   LPAR r   r   LParenr          

C  r   c                  6    t        t        j                  d      S )N))r   r   RPARr   r   r   RParenr      r   r   c           	          	 t        | t              s| g} t        |t              s
d|_        |g}t        t        j
                  | t        t        j                  dd      gz   |z         S )N r	   prefix)	
isinstancelistr   r   r
   atomr   r   r   )targetsources     r   Assignr%      s`    'fd#fd#		$u{{C<==FH Hr   Nc                 <    	 t        t        j                  | |      S Nr   )r   r   NAME)namer   s     r   Namer*   $   s    

D00r   c                 P    	 | t        t        j                  t               |g      gS N)r   r
   trailerDot)objattrs     r   Attrr1   (   s!    #dllSUDM233r   c                  8    	 t        t        j                  d      S )N,)r   r   COMMAr   r   r   Commar5   ,   s    S!!r   c                  8    	 t        t        j                  d      S )N.)r   r   DOTr   r   r   r.   r.   0   s    		3r   c                     	 t        t        j                  |j                         |j                         g      }| r*|j	                  dt        t        j
                  |              |S )Nr   )r   r
   r-   cloneinsert_childarglist)argslparenrparennodes       r   ArgListrA   4   sI    7v||~v||~>?D!T$,,56Kr   c                 d    	 t        t        j                  | t        |      g      }|||_        |S r,   )r   r
   powerrA   r   )	func_namer=   r   r@   s       r   CallrE   ;   s0    

Y67DKr   c                  8    	 t        t        j                  d      S )N
r   r   NEWLINEr   r   r   NewlinerJ   B   s    t$$r   c                  8    	 t        t        j                  d      S )N rH   r   r   r   	BlankLinerM   F   s    r""r   c                 :    t        t        j                  | |      S r'   )r   r   NUMBER)nr   s     r   NumberrQ   J   s    a//r   c           	          	 t        t        j                  t        t        j
                  d      | t        t        j                  d      g      S )N[])r   r
   r-   r   r   LBRACERBRACE)
index_nodes    r   	SubscriptrX   M   s;    'tELL#6)#ELL#68 9 9r   c                 <    	 t        t        j                  | |      S r'   )r   r   STRING)stringr   s     r   Stringr\   S   s    fV44r   c           	      j   	 d| _         d|_         d|_         t        t        j                  d      }d|_         t        t        j                  d      }d|_         ||||g}|rSd|_         t        t        j                  d      }d|_         |j	                  t        t        j                  ||g             t        t        j                  | t        t        j                  |      g      }t        t        j                  t        t        j                  d      |t        t        j                  d      g      S )NrL   r   forinifrS   rT   )r   r   r   r(   appendr   r
   comp_if	listmakercomp_forr"   rU   rV   )	xpfpittestfor_leafin_leaf
inner_argsif_leafinners	            r   ListComprn   W   s     BIBIBIEJJ&HHO5::t$GGNB,Juzz4($t||gt_=>"d4==*&E!FGE		U\\3/U\\3/12 2r   c                 >   	 |D ]  }|j                           t        t        j                  d      t        t        j                  | d      t        t        j                  dd      t	        t
        j                  |      g}t	        t
        j                  |      }|S )Nfromr   r   import)remover   r   r(   r   r
   import_as_namesimport_from)package_name
name_leafsleafchildrenimps        r   
FromImportrz   o   s    *   UZZ(UZZc:UZZ#6T)):68H t
*CJr   c                 P   	 |d   j                         }|j                  t        j                  k(  r|j                         }n)t	        t        j                  |j                         g      }|d   }|r|D cg c]  }|j                          }}t	        t        j
                  t        t        |d         t        |d               t	        t        j                  |d   j                         ||d   j                         g      gz   |z         }| j                  |_	        |S c c}w )Nr/   after    r   lparrpar)
r:   typer
   r<   r   rC   r1   r*   r-   r   )r@   resultsnamesr/   
newarglistr|   rP   news           r   ImportAndCallr      s    
 %.


 C
xx4<<YY[
$,,6
GE$)*q**
tzzDqNDqN3T\\fo++- fo++-/0 11 49	9:C CJJ +s   7D#c                    	 t        | t              r"| j                  t               t	               gk(  ryt        | t              xr t        | j                        dk(  xr t        | j                  d   t              xrx t        | j                  d   t              xrY t        | j                  d   t              xr: | j                  d   j                  dk(  xr | j                  d   j                  dk(  S )NT   r}   r      r   r   )r    r   rx   r   r   lenr   r   r@   s    r   is_tupler      s    2$$--FHfh3G"GtT" .DMM"a'.4==+T2. 4==+T2. 4==+T2	.
 a &&#-. a &&#-/r   c                 L   	 t        | t              xr t        | j                        dkD  xrx t        | j                  d   t              xrY t        | j                  d   t              xr: | j                  d   j
                  dk(  xr | j                  d   j
                  dk(  S )Nr   r}   rS   rT   )r    r   r   rx   r   r   r   s    r   is_listr      s    1tT" /DMM"Q&/4==+T2/ 4==,d3/ a &&#-	/
 b!''3.0r   c                 \    t        t        j                  t               | t	               g      S r,   )r   r
   r"   r   r   r   s    r   parenthesizer      s    		FHdFH566r   >
   allanymaxminsetsumr!   tuplesorted	enumeratec              #   R   K   	 t        | |      }|r| t        ||      }|ry y wr,   )getattr)r/   r0   nexts      r   
attr_chainr      s2      3D

tT" s   "''zefor_stmt< 'for' any 'in' node=any ':' any* >
        | comp_for< 'for' any 'in' node=any any* >
     z
power<
    ( 'iter' | 'list' | 'tuple' | 'sorted' | 'set' | 'sum' |
      'any' | 'all' | 'enumerate' | (any* trailer< '.' 'join' >) )
    trailer< '(' node=any ')' >
    any*
>
z`
power<
    ( 'sorted' | 'enumerate' )
    trailer< '(' arglist<node=any any*> ')' >
    any*
>
Fc                 F   	 t         sMt        j                  t              at        j                  t              at        j                  t
              ada t        t        t
        g}t        |t        | d            D ]#  \  }}i }|j                  ||      s|d   | u s# y y)NTparentr@   F)	
pats_builtr   compile_patternp0p1p2zipr   match)r@   patternspatternr   r   s        r   in_special_contextr      s     $$R($$R($$R(
B|HxD()CD ==)gfo.E r   c                    	 | j                   }||j                  t        j                  k(  ry| j                  }|j                  t
        j                  t
        j                  fv ry|j                  t
        j                  k(  r|j                  d   | u ry|j                  t
        j                  k(  sM|j                  t
        j                  k(  r1||j                  t        j                  k(  s|j                  d   | u ryy)NFr}   T)prev_siblingr   r   r8   r   r
   funcdefclassdef	expr_stmtrx   
parameterstypedargslistr4   )r@   prevr   s      r   is_probably_builtinr      s     DDII2[[F{{t||T]]33{{dnn$);t)C{{doo%[[D...$))u{{":OOA$& r   c                    	 | || j                   t        j                  k(  rPt        | j                        dkD  r8| j                  d   }|j                   t
        j                  k(  r|j                  S | j                  } | |y)Nr   r   rL   )	r   r
   suiter   rx   r   INDENTr   r   )r@   indents     r   find_indentationr     si    )

99

"s4=='9A'=]]1%F{{ell*||#{{ 
 r   c                     | j                   t        j                  k(  r| S | j                         } | j                  d c}| _        t        t        j                  | g      }||_        |S r,   )r   r
   r   r:   r   r   )r@   r   r   s      r   
make_suiter     sR    yyDJJ::<D++tFDKdV$EELLr   c                     	 | j                   t        j                  k7  r7| j                  } | st	        d      | j                   t        j                  k7  r7| S )Nz,root found before file_input node was found.)r   r
   
file_inputr   
ValueErrorr   s    r   	find_rootr   &  sF    '
))t
&{{KLL ))t
& Kr   c                 F    	 t        |t        |      |       }t        |      S r,   )find_bindingr   bool)packager)   r@   bindings       r   does_tree_importr   /  s%    9 44':G=r   c                 \    	 | j                   t        j                  t        j                  fv S r,   )r   r
   import_namert   r   s    r   	is_importr   7  s%    :99))4+;+;<<<r   c           	      J   	 d }t        |      }t        | ||      ry dx}}t        |j                        D ]>  \  }} ||      st        |j                  |d        D ]  \  }} ||      r n ||z   } n |dk(  ryt        |j                        D ]a  \  }}|j                  t
        j                  k(  s$|j                  s1|j                  d   j                  t        j                  k(  s\|dz   } n | Ot        t
        j                  t        t        j                  d      t        t        j                  |d      g      }	n't        | t        t        j                  |d      g      }	|	t               g}
|j                  |t        t
        j                  |
             y )Nc                     | j                   t        j                  k(  xr& | j                  xr t	        | j                  d         S )Nr}   )r   r
   simple_stmtrx   r   r   s    r   is_import_stmtz$touch_import.<locals>.is_import_stmt>  s:    		T--- ,$-- ,$--*+	-r   r}   r   rq   r   r   )r   r   r   rx   r   r
   r   r   rZ   r   r   r   r(   rz   rJ   r;   )r   r)   r@   r   root
insert_posoffsetidxnode2import_rx   s              r   touch_importr   ;  s|   $- T?Dt, Jt}}- 	Td#&t}}ST':; 	MFE!%(	 6\
 Q"4==1 	IC		T---$--}}Q$$4 1W
		 t''X&T#.*
 
 WtEJJS'I&JK#Hj$t'7'7"BCr   c           
         	 |j                   D ]<  }d }|j                  t        j                  k(  rGt	        | |j                   d         r|c S t        | t        |j                   d         |      }|r|}n|j                  t        j                  t        j                  fv r*t        | t        |j                   d         |      }|rh|}nd|j                  t        j                  k(  rt        | t        |j                   d         |      }|r|}nt        |j                   dd        D ]^  \  }}|j                  t        j                  k(  s$|j                  dk(  s4t        | t        |j                   |dz            |      }|s]|}` n|j                  t        v r|j                   d   j                  | k(  r|}nst        || |      r|}nc|j                  t        j                   k(  rt        | ||      }n8|j                  t        j"                  k(  rt	        | |j                   d         r|}|s(|s|c S t%        |      s;|c S  y )Nr   r   r   r   :   r}   )rx   r   r
   for_stmt_findr   r   if_stmt
while_stmttry_stmtr   r   COLONr   	_def_syms_is_import_bindingr   r   r   )r)   r@   r   childretrP   ikids           r   r   r   i  s   (  "::&T5>>!,-T:ennR.@#A7KA#ZZDLL$//::T:ennR.@#A7KA#ZZ4==(T:ennQ.?#@'JA'qr(:; &FAsxx5;;.3993C(z%..1:M/NPWXAc	&
 ZZ9$):)@)@D)HCtW5CZZ4+++tUG4CZZ4>>)T5>>!,-
~
E"F r   c                 
   |g}|r~|j                         }|j                  dkD  r.|j                  t        vr|j                  |j                         n.|j                  t
        j                  k(  r|j                  | k(  r|S |r~y )N   )popr   _block_symsextendrx   r   r(   r   )r)   r@   nodess      r   r   r     sg    FE
yy{99s?tyy;LL'YY%**$t);K  r   c                 .   	 | j                   t        j                  k(  r9|s6| j                  d   }|j                   t        j                  k(  r|j                  D ]q  }|j                   t        j
                  k(  r!|j                  d   j                  |k(  s=| c S |j                   t        j                  k(  s_|j                  |k(  so| c S  y |j                   t        j
                  k(  r=|j                  d   }|j                   t        j                  k(  r?|j                  |k(  r0| S |j                   t        j                  k(  r|j                  |k(  r| S y | j                   t        j                  k(  r|r*t        | j                  d         j                         |k7  ry | j                  d   }|rt        d|      ry |j                   t        j                  k(  rt        ||      r| S |j                   t        j                  k(  r>|j                  d   }|j                   t        j                  k(  r|j                  |k(  r| S y |j                   t        j                  k(  r|j                  |k(  r| S |r|j                   t        j                  k(  r| S y )Nr   r   r   r   as)r   r
   r   rx   dotted_as_namesdotted_as_namer   r   r(   rt   strstripr   rs   import_as_nameSTAR)r@   r)   r   ry   r   lastrP   s          r   r   r     s   ) yyD$$$WmmA88t+++  ::!4!44~~a(..$6#ZZ5::-%++2EK > 3 XX,,,<<#DyyEJJ&4::+=XX#		T(9K( ' 
d&&	& s4==+,224?MM!uT1~VVt+++dAKVVt***JJqMEzzUZZ'EKK4,?
 	 VVuzz!aggoK5::-Kr   r,   )NN)5pgen2r   pytreer   r   pygramr   r
   rL   r   r   r   r   r%   r*   r1   r5   r.   rA   rE   rJ   rM   rQ   rX   r\   rn   rz   r   r   r   r   consuming_callsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r   r   r   r   r   r   <module>r      s   7   * :!!	H14"   &( %#09520&8
/07.#&	 
&.=*DZ ]]DLL)	(T ||T]]DLL9'r   