U e5dg; @sddlmZddlmZmZddlmZddlm Z ddZ ddZ d d Z d d Z dVddZddZddZddZe e fddZdWddZddZddZdXddZd d!ZdYd"d#ZdZd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1d2d3d4d5d6d7d8d9h Zd:d;Z da#d?a$d@dAZ%dBdCZ&dDdEZ'dFdGZ(dHdIZ)dJdKZ*dLdMZ+dNdOZ,ej-ej.hZ/d[dPdQZ0ej.ej-ej1hZ2dRdSZ3d\dTdUZ4d S)])token)LeafNode)python_symbols)patcompcCsttj|ttjd|gS)N=)rsymsZargumentrrEQUAL)keywordvaluer */usr/lib64/python3.8/lib2to3/fixer_util.py KeywordArgsrcCs ttjdS)N()rrLPARr r r r LParensrcCs ttjdS)N))rrRPARr r r r RParensrcCsHt|ts|g}t|ts&d|_|g}ttj|ttjdddg|S)N rprefix) isinstancelistrrratomrrr )targetsourcer r r Assigns  rNcCsttj||dSNr)rrNAME)namerr r r Name$sr!cCs|ttjt|ggSN)rrtrailerDot)objattrr r r Attr(sr'cCs ttjdS)N,)rrCOMMAr r r r Comma,sr*cCs ttjdS)N.)rrDOTr r r r r$0sr$cCs4ttj||g}|r0|dttj||S)Nr)rrr#clone insert_childarglist)argsZlparenZrparennoder r r ArgList4sr2cCs&ttj|t|g}|dk r"||_|Sr")rrpowerr2r)Z func_namer0rr1r r r Call;sr4cCs ttjdS)N rrNEWLINEr r r r NewlineBsr8cCs ttjdS)Nr6r r r r BlankLineFsr:cCsttj||dSr)rrNUMBER)nrr r r NumberJsr=cCs"ttjttjd|ttjdgS)N[])rrr#rrLBRACERBRACE)Z index_noder r r SubscriptMs rBcCsttj||dSr)rrSTRING)stringrr r r StringSsrEc Csd|_d|_d|_ttjd}d|_ttjd}d|_||||g}|rtd|_ttjd}d|_|ttj||gttj|ttj |g}ttj ttj d|ttj dgS)Nr9rforinifr>r?) rrrrappendrrZcomp_ifZ listmakerZcomp_forrr@rA) ZxpfpitZtestZfor_leafZin_leafZ inner_argsZif_leafinnerr r r ListCompWs(      rMcCsV|D] }|qttjdttj|ddttjdddttj|g}ttj|}|S)Nfromrrimport)removerrrrrimport_as_names import_from)Z package_nameZ name_leafsZleafchildrenimpr r r FromImportos    rUc Cs|d}|jtjkr"|}nttj|g}|d}|rNdd|D}ttjtt|dt|dttj|d||dgg|}|j |_ |S) Nr%aftercSsg|] }|qSr )r-).0r<r r r sz!ImportAndCall..rZlparZrpar) r-typerr/rr3r'r!r#r)r1resultsnamesr%Z newarglistrVnewr r r ImportAndCalls*     r^cCst|tr |jttgkr dSt|tot|jdkot|jdtot|jdtot|jdto|jdjdko|jdjdkS)NTrYrrr)rrrSrrlenrr r1r r r is_tuples  rccCsXt|toVt|jdkoVt|jdtoVt|jdtoV|jdjdkoV|jdjdkS)NrrYr>r?)rrrarSrr rbr r r is_lists  recCsttjt|tgSr")rrrrrrbr r r parenthesizesrfsortedrsetanyalltuplesumminmax enumerateccs$t||}|r |Vt||}q dSr")getattr)r%r&nextr r r attr_chains rrzefor_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 ')' > any* > FcCspts&ttattattadatttg}t|t|dD]*\}}i}|||r@|d|kr@dSq@dS)NTparentr1F) pats_builtrZcompile_patternp0p1p2ziprrmatch)r1Zpatternspatternrsr[r r r in_special_contexts    r{cCs|j}|dk r|jtjkrdS|j}|jtjtjfkr:dS|jtjkrX|j d|krXdS|jtj ks|jtj kr|dk r|jtj ks|j d|krdSdS)NFrYT) Z prev_siblingrZrr,rsrfuncdefclassdef expr_stmtrSZ parametersZ typedargslistr))r1prevrsr r r is_probably_builtins&    rcCsJ|dk rF|jtjkr>t|jdkr>|jd}|jtjkr>|jS|j}qdS)Nr`rr9) rZrsuiterarSrINDENTr rs)r1indentr r r find_indentations  rcCs>|jtjkr|S|}|jd}|_ttj|g}||_|Sr")rZrrr-rsr)r1rsrr r r make_suites rcCs$|jtjkr |j}|stdq|S)Nz,root found before file_input node was found.)rZrZ file_inputrs ValueErrorrbr r r find_root&s   rcCst|t||}t|Sr") find_bindingrbool)packager r1Zbindingr r r does_tree_import/srcCs|jtjtjfkSr")rZr import_namerRrbr r r is_import7src Cs.dd}t|}t|||r dSd}}t|jD]F\}}||sDq2t|j|dD]\}}||sVqlqV||}qzq2|dkrt|jD]8\}}|jtjkr|jr|jdjtjkr|d}qq|dkrt tj t tj dt tj |ddg} nt |t tj |ddg} | tg} ||t tj| dS)NcSs |jtjko|jot|jdS)NrY)rZr simple_stmtrSrrbr r r is_import_stmt>s z$touch_import..is_import_stmtrYrrOrr)rrrorSrZrrrrCrrrrrUr8r.) rr r1rrootZ insert_posoffsetidxZnode2import_rSr r r touch_import;s8   rcCs|jD]}d}|jtjkrVt||jdr4|St|t|jd|}|rR|}n0|jtjtjfkrt|t|jd|}|r|}n|jtj krt|t|jd|}|r|}nTt |jddD]@\}}|jt j kr|j dkrt|t|j|d|}|r|}qnx|jtkr2|jdj |kr2|}nTt|||rF|}n@|jtjkrbt|||}n$|jtjkrt||jdr|}|r|s|St|r|SqdS)Nrrdr`r_:rY)rSrZrZfor_stmt_findrrZif_stmtZ while_stmtZtry_stmtrorCOLONr _def_syms_is_import_bindingrr~r)r r1rchildZretr<iZkidr r r risH   rcCsT|g}|rP|}|jdkr4|jtkr4||jq|jtjkr|j|kr|SqdS)N)poprZ _block_symsextendrSrrr )r r1Znodesr r r rsrcCs|jtjkr|s|jd}|jtjkrx|jD]H}|jtjkrV|jdj|krt|Sq,|jtjkr,|j|kr,|Sq,nL|jtjkr|jd}|jtjkr|j|kr|Sn|jtjkr|j|kr|Sn|jtj kr|rt |jd |krdS|jd}|rt d|rdS|jtj kr0t ||r0|S|jtjkrh|jd}|jtjkr|j|kr|Sn6|jtjkr|j|kr|S|r|jtjkr|SdS)Nrr`rdr_as)rZrrrSZdotted_as_namesZdotted_as_namer rrrRstrstriprrQZimport_as_nameSTAR)r1r rrTrZlastr<r r r rs@          r)N)NN)N)N)N)N)N)5Zpgen2rZpytreerrZpygramrrr9rrrrrr!r'r*r$r2r4r8r:r=rBrErMrUr^rcrerfZconsuming_callsrrrurvrwrtr{rrrrrrrr}r|rrr#rrrr r r r s^           -  *