<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

];              
   @   sp  d  d l  m Z d d l m Z d d l m Z m Z d d l m Z	 d d l
 m Z d d   Z d	 d
   Z d d   Z d d   Z d d d  Z d d   Z d d   Z d d   Z e   e   d d  Z d d d d  Z d d   Z d d   Z d 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 d0 d1   Z  d2 d3 d4 d5 d6 d7 d8 d9 d: d; h
 Z! d< d=   Z" d> a# d? a$ d@ a% dA a& dB dC   Z' dD dE   Z( dF dG   Z) dH dI   Z* dJ dK   Z+ dL dM   Z, dN dO   Z- dP dQ   Z. e	 j/ e	 j0 h Z1 d dR dS  Z2 e	 j0 e	 j/ e	 j3 h Z4 dT dU   Z5 d dV dW  Z6 d S)X    )islice   )token)LeafNode)python_symbols)patcompc             C   s%   t  t j |  t t j d  | g  S)N=)r   symsargumentr   r   EQUAL)keywordvalue r   //opt/alt/python35/lib64/python3.5/fixer_util.py
KeywordArg   s    	r   c               C   s   t  t j d  S)N()r   r   LPARr   r   r   r   LParen   s    r   c               C   s   t  t j d  S)N))r   r   RPARr   r   r   r   RParen   s    r   c             C   sf   t  |  t  s |  g }  t  | t  s9 d | _ | g } t t j |  t t j d d d g |  S)N r	   prefix)	
isinstancelistr   r   r
   atomr   r   r   )targetsourcer   r   r   Assign   s    				r   Nc             C   s   t  t j |  d | S)Nr   )r   r   NAME)namer   r   r   r   Name&   s    r"   c             C   s   |  t  t j t   | g  g S)N)r   r
   trailerDot)objattrr   r   r   Attr*   s    r'   c               C   s   t  t j d  S)N,)r   r   COMMAr   r   r   r   Comma.   s    r*   c               C   s   t  t j d  S)N.)r   r   DOTr   r   r   r   r$   2   s    r$   c             C   sJ   t  t j | j   | j   g  } |  rF | j d t  t j |    | S)Nr   )r   r
   r#   cloneinsert_childarglist)argsZlparenZrparennoder   r   r   ArgList6   s    $r2   c             C   s7   t  t j |  t |  g  } | d  k	 r3 | | _ | S)N)r   r
   powerr2   r   )	func_namer0   r   r1   r   r   r   Call=   s    	r5   c               C   s   t  t j d  S)N
)r   r   NEWLINEr   r   r   r   NewlineD   s    r8   c               C   s   t  t j d  S)N )r   r   r7   r   r   r   r   	BlankLineH   s    r:   c             C   s   t  t j |  d | S)Nr   )r   r   NUMBER)nr   r   r   r   NumberL   s    r=   c             C   s1   t  t j t t j d  |  t t j d  g  S)N[])r   r
   r#   r   r   LBRACERBRACE)Z
index_noder   r   r   	SubscriptO   s    rB   c             C   s   t  t j |  d | S)Nr   )r   r   STRING)stringr   r   r   r   StringU   s    rE   c       	      C   s  d |  _  d | _  d | _  t t j d  } d | _  t t j d  } d | _  | | | | g } | r d | _  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)Nr9   r   forinifr>   r?   )r   r   r   r    appendr   r
   Zcomp_ifZ	listmakerZcomp_forr   r@   rA   )	ZxpfpitZtestZfor_leafZin_leafZ
inner_argsZif_leafinnerr   r   r   ListCompY   s$    							$	rM   c             C   s   x | D] } | j    q Wt t j d  t t j |  d d t t j d d d t t j |  g } t t j |  } | S)Nfromr   r   import)remover   r   r    r   r
   import_as_namesimport_from)Zpackage_nameZ
name_leafsZleafchildrenimpr   r   r   
FromImportq   s    rU   c          	   C   s   | d j    } | j t j k r1 | j    } n t t j | j    g  } | d } | ro d d   | D } t t j t t | d  t | d   t t j | d j    | | d j    g  g |  } |  j	 | _	 | S)	Nr%   afterc             S   s   g  |  ] } | j     q Sr   )r-   ).0r<   r   r   r   
<listcomp>   s   	 z!ImportAndCall.<locals>.<listcomp>r   r   ZlparZrpar)
r-   typer
   r/   r   r3   r'   r"   r#   r   )r1   resultsnamesr%   Z
newarglistrV   newr   r   r   ImportAndCall   s    
	Zr]   c             C   s   t  |  t  r. |  j t   t   g k r. d St  |  t  o t |  j  d k o t  |  j d t  o t  |  j d t  o t  |  j d t  o |  j d j d k o |  j d j d k S)NT   r   r      r   r   )r   r   rS   r   r   lenr   r   )r1   r   r   r   is_tuple   s    *ra   c             C   sz   t  |  t  oy t |  j  d k oy t  |  j d t  oy t  |  j d t  oy |  j d j d k oy |  j d j d k S)Nr   r   r>   r?   rb   )r   r   r`   rS   r   r   )r1   r   r   r   is_list   s    rc   c             C   s   t  t j t   |  t   g  S)N)r   r
   r   r   r   )r1   r   r   r   parenthesize   s    rd   sortedr   setanyalltuplesumminmax	enumeratec             c   s4   t  |  |  } x | r/ | Vt  | |  } q Wd  S)N)getattr)r%   r&   nextr   r   r   
attr_chain   s    	rp   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             C   s   t  s9 t j t  a t j t  a t j t  a d a  t t t g } xR t | t |  d   D]8 \ } } i  } | j | |  ra | d |  k ra d Sqa Wd S)NTparentr1   F)	
pats_builtr   Zcompile_patternp0p1p2ziprp   match)r1   patternspatternrq   rZ   r   r   r   in_special_context   s    %"rz   c             C   s   |  j  } | d  k	 r+ | j t j k r+ d S|  j } | j t j t j f k rS d S| j t j k r| | j	 d |  k r| d S| j t j
 k s | j t j k r | d  k	 r | j t j k s | j	 d |  k r d Sd S)NFr   T)Zprev_siblingrY   r   r,   rq   r
   funcdefclassdef	expr_stmtrS   Z
parametersZtypedargslistr)   )r1   prevrq   r   r   r   is_probably_builtin   s    		%r   c             C   sm   xf |  d  k	 rh |  j  t j k r\ t |  j  d k r\ |  j d } | j  t j k r\ | j S|  j }  q Wd S)Nr_   r   r9   )	rY   r
   suiter`   rS   r   INDENTr   rq   )r1   indentr   r   r   find_indentation  s    'r   c             C   sW   |  j  t j k r |  S|  j   }  |  j d  } |  _ t t j |  g  } | | _ | S)N)rY   r
   r   r-   rq   r   )r1   rq   r   r   r   r   
make_suite  s    	r   c             C   s8   x1 |  j  t j k r3 |  j }  |  s t d   q W|  S)Nz,root found before file_input node was found.)rY   r
   Z
file_inputrq   
ValueError)r1   r   r   r   	find_root(  s
    	r   c             C   s"   t  | t |  |   } t |  S)N)find_bindingr   bool)packager!   r1   Zbindingr   r   r   does_tree_import1  s    r   c             C   s   |  j  t j t j f k S)N)rY   r
   import_namerR   )r1   r   r   r   	is_import9  s    r   c             C   s  d d   } t  |  } t |  | |  r. d  Sd } } xn t | j  D]] \ } } | |  sc qH x4 t | j | d    D] \ } } | |  s} Pq} W| | } PqH W| d k rx\ t | j  D]K \ } } | j t j k r | j r | j d j t j k r | d } Pq W|  d  k rYt	 t j
 t t j d  t t j | d d g  }	 n$ t |  t t j | d d g  }	 |	 t   g }
 | j | t	 t j |
   d  S)Nc             S   s,   |  j  t j k o+ |  j o+ t |  j d  S)Nr   )rY   r
   simple_stmtrS   r   )r1   r   r   r   is_import_stmt@  s    z$touch_import.<locals>.is_import_stmtr   r   rO   r   r   )r   r   rm   rS   rY   r
   r   r   rC   r   r   r   r    rU   r8   r.   )r   r!   r1   r   rootZ
insert_posoffsetidxZnode2import_rS   r   r   r   touch_import=  s4    
&

	!$r   c             C   s<  x5| j  D]*} d  } | j t j k rp t |  | j  d  rB | St |  t | j  d  |  } | r| } n| j t j t j f k r t |  t | j  d  |  } | r| } n[| j t j	 k rvt |  t | j  d  |  } | r | } qxt
 | j  d d    D]\ \ } } | j t j k r| j d k rt |  t | j  | d  |  } | r| } qWn | j t k r| j  d j |  k r| } np t | |  |  r| } nU | j t j k rt |  | |  } n. | j t j k rt |  | j  d  r| } | r
 | s$| St |  r
 | Sq
 Wd  S)	Nr   r_   r^   :   r   rb   rb   )rS   rY   r
   Zfor_stmt_findr   r   Zif_stmtZ
while_stmtZtry_stmtrm   r   COLONr   	_def_syms_is_import_bindingr   r}   r   )r!   r1   r   childretr<   iZkidr   r   r   r   k  sH     	 		&!# %		r   c             C   s|   | g } xl | rw | j    } | j d k rO | j t k rO | j | j  q | j t j k r | j |  k r | Sq Wd  S)N   )poprY   _block_symsextendrS   r   r    r   )r!   r1   Znodesr   r   r   r     s    		!r   c             C   s$  |  j  t j k r| r|  j d } | j  t j k r x | j D]Z } | j  t j k rw | j d j | k r |  SqB | j  t j k rB | j | k rB |  SqB Wq | j  t j k r | j d } | j  t j k r| j | k r|  Sq | j  t j k r | j | k r |  Sn|  j  t j	 k r | rMt
 |  j d  j   | k rMd  S|  j d } | rst d |  rsd  S| j  t j k rt | |  r|  S| j  t j k r| j d } | j  t j k r | j | k r |  SnA | j  t j k r| j | k r|  S| r | j  t j k r |  Sd  S)Nr   r_   r^   asrb   )rY   r
   r   rS   Zdotted_as_namesZdotted_as_namer   r   r    rR   strstripr   rQ   Zimport_as_nameSTAR)r1   r!   r   rT   r   Zlastr<   r   r   r   r     s@    !!!%!!!r   )7	itertoolsr   Zpgen2r   Zpytreer   r   Zpygramr   r
   r9   r   r   r   r   r   r"   r'   r*   r$   r2   r5   r8   r:   r=   rB   rE   rM   rU   r]   ra   rc   rd   Zconsuming_callsrp   rs   rt   ru   rr   rz   r   r   r   r   r   r   r   r|   r{   r   r   r#   r   r   r   r   r   r   r   <module>   sZ   		-*
