3 Õì2ag;ã @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ÚsymsÚargumentrrÚEQUAL)ÚkeywordÚvalue©r ú//opt/alt/python36/lib64/python3.6/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$sr cCs|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 rr"0sr"cCs4ttj|jƒ|jƒgƒ}|r0|jdttj|ƒƒ|S)Nr)rrr!ÚcloneÚ insert_childÚarglist)ÚargsZlparenZrparenÚnoder r rÚArgList4sr0cCs&ttj|t|ƒgƒ}|dk r"||_|S)N)rrÚpowerr0r)Z func_namer.rr/r r rÚCall;sr2cCs ttjdƒS)NÚ )rrÚNEWLINEr r r rÚNewlineBsr5cCs ttjdƒS)NÚ)rrr4r r r rÚ BlankLineFsr7cCsttj||d�S)N)r)rrÚNUMBER)Únrr r rÚNumberJsr:cCs"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ÚStringSsrBc Cs®d|_d|_d|_ttjdƒ}d|_ttjdƒ}d|_||||g}|rtd|_ttjdƒ}d|_|jttj||gƒƒttj|ttj |ƒgƒ}ttj ttj dƒ|ttj dƒgƒS)Nr6rÚforÚinÚifr;r<) rrrrÚappendrrZcomp_ifZ listmakerZcomp_forrr=r>) ZxpÚfpÚitZtestZfor_leafZin_leafZ inner_argsZif_leafÚinnerr r rÚListCompWs$     rJcCsZx|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    rRc 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+)Ú.0r9r r rú �sz!ImportAndCall..érZlparZrpar) r+Útyperr-rr1r%r r!r)r/ÚresultsÚnamesr#Z newarglistrSÚnewr r rÚ ImportAndCall‚s   Dr[cCsˆt|tƒr |jtƒtƒgkr dSt|tƒo†t|jƒdko†t|jdtƒo†t|jdtƒo†t|jdtƒo†|jdjdko†|jdjdkS)NTérVrérr)rrrPrrÚlenrr )r/r r rÚis_tupležs r_cCsXt|tƒoVt|jƒdkoVt|jdtƒoVt|jdtƒoV|jdjdkoV|jdjdkS)NrrVr;r<éÿÿÿÿr`)rrr^rPrr )r/r r rÚis_listªs  racCsttjtƒ|tƒgƒS)N)rrrrr)r/r r rÚ parenthesize¸srbÚ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 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&tjtƒatjtƒatjtƒadatttg}x|jtjkr|S|jƒ}|jd}|_ttj|gƒ}||_|S)N)rWrr}r+ror)r/ror}r r rÚ make_suites r�cCs(x"|jtjkr"|j}|stdƒ‚qW|S)Nz,root found before file_input node was found.)rWrZ file_inputroÚ 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)rWrÚ import_namerO)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)NrV)rWrÚ simple_stmtrPr‰)r/r r rÚis_import_stmt>sz$touch_import..is_import_stmtrVrrLr)r)rƒr‡rkrPrWrrŠrr@rrˆrrrRr5r,) r†rr/r‹ÚrootZ insert_posÚoffsetÚidxZnode2Úimport_rPr 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\ú:érVr`r`)rPrWrZfor_stmtÚ_findr„r�Zif_stmtZ while_stmtZtry_stmtrkrÚCOLONr Ú _def_symsÚ_is_import_bindingrŠrzr‰)rr/r†ÚchildÚretr9ÚiZkidr r rr„isH  r„cCsX|g}xL|rR|jƒ}|jdkr6|jtkr6|j|jƒq|jtjkr|j|kr|SqWdS)Né)ÚpoprWÚ _block_symsÚextendrPrrr )rr/Znodesr r rr“”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`)rWrrˆrPZdotted_as_namesZdotted_as_namer rrrOÚstrÚstripr“rNZimport_as_nameÚSTAR)r/rr†rQr—Zlastr9r r rr–žs@         r–)N)NN)N)N)N)N)N)5Zpgen2rZpytreerrZpygramrrr6rrrrrr r%r(r"r0r2r5r7r:r?rBrJrRr[r_rarbZconsuming_callsrnrqrrrsrprwr|r€r�rƒr‡r‰r�ryrxr•r„r!rœr“r–r r r rÚsX            -  *