grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \g;ã @sœddlmZddlmZmZddlmZddlm Z dd„Z dd„Z d d „Z d d „Z dVdd„Zdd„Zdd„Zdd„Ze ƒe ƒfdd„ZdWdd„Zdd„Zdd„ZdXdd„Zd d!„ZdYd"d#„ZdZd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1d2d3d4d5d6d7d8d9h Zd:d;„Z da#d?a$d@dA„Z%dBdC„Z&dDdE„Z'dFdG„Z(dHdI„Z)dJdK„Z*dLdM„Z+dNdO„Z,ej-ej.hZ/d[dPdQ„Z0ej.ej-ej1hZ2dRdS„Z3d\dTdU„Z4d S)]é)Útoken)ÚLeafÚNode)Úpython_symbols)ÚpatcompcCsttj|ttjdƒ|gƒS)Nú=)rÚsymsZargumentrrÚEQUAL)ÚkeywordÚvalue©r ú*/usr/lib64/python3.6/lib2to3/fixer_util.pyÚ KeywordArgsrcCs ttjdƒS)Nú()rrÚLPARr r r r ÚLParensrcCs ttjdƒS)Nú))rrÚRPARr r r r ÚRParensrcCsHt|tƒs|g}t|tƒs&d|_|g}ttj|ttjddd�g|ƒS)Nú r)Úprefix) Ú isinstanceÚlistrrrÚatomrrr )ÚtargetÚsourcer r r ÚAssigns  rNcCsttj||d�S)N)r)rrÚNAME)Únamerr r r ÚName$srcCs|ttjtƒ|gƒgS)N)rrÚtrailerÚDot)ÚobjÚattrr r r ÚAttr(sr$cCs ttjdƒS)Nú,)rrÚCOMMAr r r r ÚComma,sr'cCs ttjdƒS)NÚ.)rrÚDOTr r r r r!0sr!cCs4ttj|jƒ|jƒgƒ}|r0|jdttj|ƒƒ|S)Nr)rrr ÚcloneÚ insert_childÚarglist)ÚargsZlparenZrparenÚnoder r r ÚArgList4sr/cCs&ttj|t|ƒgƒ}|dk r"||_|S)N)rrÚpowerr/r)Z func_namer-rr.r r r ÚCall;sr1cCs ttjdƒS)NÚ )rrÚNEWLINEr r r r ÚNewlineBsr4cCs ttjdƒS)NÚ)rrr3r r r r Ú BlankLineFsr6cCsttj||d�S)N)r)rrÚNUMBER)Únrr r r ÚNumberJsr9cCs"ttjttjdƒ|ttjdƒgƒS)Nú[ú])rrr rrÚLBRACEÚRBRACE)Z index_noder r r Ú SubscriptMsr>cCsttj||d�S)N)r)rrÚSTRING)Ústringrr r r ÚStringSsrAc Cs®d|_d|_d|_ttjdƒ}d|_ttjdƒ}d|_||||g}|rtd|_ttjdƒ}d|_|jttj||gƒƒttj|ttj |ƒgƒ}ttj ttj dƒ|ttj dƒgƒS)Nr5rÚforÚinÚifr:r;) rrrrÚappendrrZcomp_ifZ listmakerZcomp_forrr<r=) ZxpÚfpÚitZtestZfor_leafZin_leafZ inner_argsZif_leafÚinnerr r r ÚListCompWs$     rIcCsZx|D] }|jƒqWttjdƒttj|dd�ttjddd�ttj|ƒg}ttj|ƒ}|S)NÚfromr)rÚimport)ÚremoverrrrrÚimport_as_namesÚ import_from)Z package_nameZ name_leafsZleafÚchildrenÚimpr r r Ú FromImportos    rQc Cs¤|djƒ}|jtjkr"|jƒ}nttj|jƒgƒ}|d}|rNdd„|Dƒ}ttjtt|dƒt|dƒƒttj|djƒ||djƒgƒg|ƒ}|j |_ |S) Nr"ÚaftercSsg|] }|jƒ‘qSr )r*)Ú.0r8r r r ú �sz!ImportAndCall..érZlparZrpar) r*Útyperr,rr0r$rr r)r.ÚresultsÚnamesr"Z newarglistrRÚnewr r r Ú ImportAndCall‚s   DrZcCsˆt|tƒr |jtƒtƒgkr dSt|tƒo†t|jƒdko†t|jdtƒo†t|jdtƒo†t|jdtƒo†|jdjdko†|jdjdkS)NTérUrérr)rrrOrrÚlenrr )r.r r r Úis_tupležs r^cCsXt|tƒoVt|jƒdkoVt|jdtƒoVt|jdtƒoV|jdjdkoV|jdjdkS)NrrUr:r;éÿÿÿÿr_)rrr]rOrr )r.r r r Úis_listªs  r`cCsttjtƒ|tƒgƒS)N)rrrrr)r.r r r Ú parenthesize¸sraÚsortedrÚsetÚanyÚallÚtupleÚsumÚminÚmaxÚ enumerateccs(t||ƒ}x|r"|Vt||ƒ}q WdS)N)Úgetattr)r"r#Únextr r r Ú attr_chain¿s rmzefor_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&tjtƒatjtƒatjtƒadatttg}x|jtjkr|S|jƒ}|jd}|_ttj|gƒ}||_|S)N)rVrr|r*rnr)r.rnr|r r r Ú make_suites r€cCs(x"|jtjkr"|j}|stdƒ‚qW|S)Nz,root found before file_input node was found.)rVrZ file_inputrnÚ ValueError)r.r r r Ú find_root&s  r‚cCst|t|ƒ|ƒ}t|ƒS)N)Ú find_bindingr‚Úbool)Úpackagerr.Zbindingr r r Údoes_tree_import/sr†cCs|jtjtjfkS)N)rVrÚ import_namerN)r.r r r Ú is_import7srˆc Cs4dd„}t|ƒ}t|||ƒr dSd}}xTt|jƒD]F\}}||ƒsFq4x(t|j|d…ƒD]\}}||ƒsZPqZW||}Pq4W|dkrÌxDt|jƒD]6\}}|jtjkr’|jr’|jdjtjkr’|d}Pq’W|dkrút tj t tj dƒt tj |dd�gƒ} nt |t tj |dd�gƒ} | tƒg} |j|t tj| ƒƒdS)NcSs |jtjko|jot|jdƒS)NrU)rVrÚ simple_stmtrOrˆ)r.r r r Úis_import_stmt>sz$touch_import..is_import_stmtrUrrKr)r)r‚r†rjrOrVrr‰rr?rr‡rrrQr4r+) r…rr.rŠÚrootZ insert_posÚoffsetÚidxZnode2Úimport_rOr r r Ú touch_import;s4   r�cCs¬�x¤|jD�]˜}d}|jtjkrVt||jdƒr4|St|t|jdƒ|ƒ}|rR|}�n4|jtjtjfkrŠt|t|jdƒ|ƒ}|r†|}�n|jtj k�rt|t|jdƒ|ƒ}|r¸|}nXxÐt |jdd…ƒD]@\}}|jt j koè|j dkrÌt|t|j|dƒ|ƒ}|rÌ|}qÌWnx|jtk�r6|jdj |k�r6|}nTt|||ƒ�rJ|}n@|jtjk�rft|||ƒ}n$|jtjk�rŠt||jdƒ�rŠ|}|r |�s˜|St|ƒr |Sq WdS) Nrr\r[ú:érUr_r_)rOrVrZfor_stmtÚ_findrƒr€Zif_stmtZ while_stmtZtry_stmtrjrÚCOLONr Ú _def_symsÚ_is_import_bindingr‰ryrˆ)rr.r…ÚchildZretr8ÚiZkidr r r rƒisH  rƒcCsX|g}xL|rR|jƒ}|jdkr6|jtkr6|j|jƒq|jtjkr|j|kr|SqWdS)Né)ÚpoprVÚ _block_symsÚextendrOrrr )rr.Znodesr r r r’”sr’cCs |jtjkrÄ| rÄ|jd}|jtjkrvx˜|jD]@}|jtjkrV|jdj|krp|Sq0|jtjkr0|j|kr0|Sq0WnL|jtjkr¨|jd}|jtjkrÂ|j|krÂ|Sn|jtjkrÂ|j|krÂ|SnØ|jtj k�rœ|rðt |jdƒj ƒ|krðdS|jd}|�rt d|ƒ�rdS|jtj k�r.t ||ƒ�r.|S|jtjk�rf|jd}|jtjk�rœ|j|k�rœ|Sn6|jtjk�r„|j|k�r„|S|�rœ|jtjk�rœ|SdS)Nrr\r[Úasr_)rVrr‡rOZdotted_as_namesZdotted_as_namer rrrNÚstrÚstripr’rMZimport_as_nameÚSTAR)r.rr…rPr–Zlastr8r r r r•žs@         r•)N)NN)N)N)N)N)N)5Zpgen2rZpytreerrZpygramrrr5rrrrrrr$r'r!r/r1r4r6r9r>rArIrQrZr^r`raZconsuming_callsrmrprqrrrorvr{rr€r‚r†rˆr�rxrwr”rƒr ršr’r•r r r r ÚsX            -  *