B ۘT @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=)rsymsargumentrrEQUAL)keywordvaluer 5/opt/alt/python37/lib/python3.7/lib2to3/fixer_util.py KeywordArgsrcCs ttjdS)N()rrLPARr r r rLParensrcCs ttjdS)N))rrRPARr r r rRParensrcCsHt|ts|g}t|ts&d|_|g}ttj|ttjdddg|S)N r)prefix) isinstancelistrrratomrrr )targetsourcer r rAssigns  rNcCsttj||dS)N)r)rrNAME)namerr r rName$sr cCs|ttjt|ggS)N)rrtrailerDot)objattrr r rAttr(sr%cCs ttjdS)N,)rrCOMMAr r r rComma,sr(cCs ttjdS)N.)rrDOTr r r rr"0sr"cCs4ttj||g}|r0|dttj||S)Nr)rrr!clone insert_childarglist)argsZlparenZrparennoder r rArgList4sr0cCs&ttj|t|g}|dk r"||_|S)N)rrpowerr0r)Z func_namer.rr/r r rCall;sr2cCs ttjdS)N )rrNEWLINEr r r rNewlineBsr5cCs ttjdS)N)rrr4r r r r BlankLineFsr7cCsttj||dS)N)r)rrNUMBER)nrr r rNumberJsr:cCs"ttjttjd|ttjdgS)N[])rrr!rrLBRACERBRACE)Z index_noder r r SubscriptMsr?cCsttj||dS)N)r)rrSTRING)stringrr r rStringSsrBc Csd|_d|_d|_ttjd}d|_ttjd}d|_||||g}|rtd|_ttjd}d|_|ttj||gttj|ttj |g}ttj ttj d|ttj dgS)Nr6rforinifr;r<) rrrrappendrrZcomp_ifZ listmakerZcomp_forrr=r>) ZxpfpitZtestZfor_leafZin_leafZ inner_argsZif_leafinnerr r rListCompWs$     rJcCsZx|D] }|qWttjdttj|ddttjdddttj|g}ttj|}|S)Nfromr)rimport)removerrrrrimport_as_names import_from)Z package_nameZ name_leafsZleafchildrenimpr r r FromImportos    rRc Cs|d}|jtjkr"|}nttj|g}|d}|rNdd|D}ttjtt|dt|dttj|d||dgg|}|j |_ |S) Nr#aftercSsg|] }|qSr )r+).0r9r r r sz!ImportAndCall..rZlparZrpar) r+typerr-rr1r%r r!r)r/resultsnamesr#Z newarglistrSnewr r r ImportAndCalls   Dr[cCst|tr |jttgkr dSt|tot|jdkot|jdtot|jdtot|jdto|jdjdko|jdjdkS)NTrVrrr)rrrPrrlenrr )r/r r ris_tuples r_cCsXt|toVt|jdkoVt|jdtoVt|jdtoV|jdjdkoV|jdjdkS)NrrVr;r<)rrr^rPrr )r/r r ris_lists  racCsttjt|tgS)N)rrrrr)r/r r r parenthesizesrbsortedrsetanyalltuplesumminmax enumerateccs(t||}x|r"|Vt||}q WdS)N)getattr)r#r$nextr r r attr_chains rnzefor_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* > FcCsrts&ttattattadatttg}x|jtjkr|S|}|jd}|_ttj|g}||_|S)N)rWrr}r+ror)r/ror}r r r make_suites rcCs(x"|jtjkr"|j}|stdqW|S)Nz,root found before file_input node was found.)rWrZ file_inputro ValueError)r/r r r find_root&s  rcCst|t||}t|S)N) find_bindingrbool)packagerr/Zbindingr r rdoes_tree_import/srcCs|jtjtjfkS)N)rWr import_namerO)r/r r r is_import7src Cs4dd}t|}t|||r dSd}}xTt|jD]F\}}||sFq4x(t|j|dD]\}}||sZPqZW||}Pq4W|dkrxDt|jD]6\}}|jtjkr|jr|jdjtjkr|d}PqW|dkrt tj t tj dt tj |ddg} nt |t tj |ddg} | tg} ||t tj| dS)NcSs |jtjko|jot|jdS)NrV)rWr simple_stmtrPr)r/r r ris_import_stmt>sz$touch_import..is_import_stmtrVrrLr)r)rrrkrPrWrrrr@rrrrrRr5r,) rrr/rrootZ insert_posoffsetidxZnode2import_rPr r r touch_import;s4   rcCsx|jD]}d}|jtjkrVt||jdr4|St|t|jd|}|rR|}n4|jtjtjfkrt|t|jd|}|r|}n|jtj krt|t|jd|}|r|}nXxt |jddD]@\}}|jt j kr|j dkrt|t|j|d|}|r|}qWnx|jtkr6|jdj |kr6|}nTt|||rJ|}n@|jtjkrft|||}n$|jtjkrt||jdr|}|r |s|St|r |Sq WdS)Nrr`r]r\:rV)rPrWrZfor_stmt_findrrZif_stmtZ while_stmtZtry_stmtrkrCOLONr _def_syms_is_import_bindingrrzr)rr/rchildretr9iZkidr r rrisH  rcCsX|g}xL|rR|}|jdkr6|jtkr6||jq|jtjkr|j|kr|SqWdS)N)poprW _block_symsextendrPrrr )rr/Znodesr r rrsrcCs|jtjkr|s|jd}|jtjkrtx|jD]@}|jtjkrT|jdj|krn|Sq.|jtjkr.|j|kr.|Sq.WnL|jtjkr|jd}|jtjkr|j|kr|Sn|jtjkr|j|kr|Sn|jtj kr|rt |jd |krdS|jd}|rt d|rdS|jtj kr,t ||r,|S|jtjkrd|jd}|jtjkr|j|kr|Sn6|jtjkr|j|kr|S|r|jtjkr|SdS)Nrr]r`r\as)rWrrrPZdotted_as_namesZdotted_as_namer rrrOstrstriprrNZimport_as_nameSTAR)r/rrrQrZlastr9r r rrs@         r)N)NN)N)N)N)N)N)5Zpgen2rZpytreerrZpygramrrr6rrrrrr r%r(r"r0r2r5r7r:r?rBrJrRr[r_rarbZconsuming_callsrnrqrrrsrprwr|rrrrrrryrxrrr!rrrr r r rsX            -  *