U e5dg;ã @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.8/lib2to3/fixer_util.pyÚ KeywordArgsÿrcCs 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©Nr)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 r r$0sr$cCs4ttj| ¡| ¡gƒ}|r0| dttj|ƒ¡|S)Nr)rrr#ÚcloneÚ insert_childÚarglist)ÚargsZlparenZrparenÚnoder r r ÚArgList4sr2cCs&ttj|t|ƒgƒ}|dk r"||_|Sr")rrÚpowerr2r)Z func_namer0rr1r r r ÚCall;sr4cCs ttjdƒS)NÚ ©rrÚNEWLINEr r r r ÚNewlineBsr8cCs ttjdƒS)NÚr6r r r r Ú BlankLineFsr:cCsttj||d�Sr)rrÚNUMBER)Únrr r r ÚNumberJsr=cCs"ttjttjdƒ|ttjdƒgƒS)Nú[ú])rrr#rrÚLBRACEÚRBRACE)Z index_noder r r Ú SubscriptMs þrBcCsttj||d�Sr)rrÚSTRING)Ústringrr r r ÚStringSsrEc Cs®d|_d|_d|_ttjdƒ}d|_ttjdƒ}d|_||||g}|rtd|_ttjdƒ}d|_| ttj||gƒ¡ttj|ttj |ƒgƒ}ttj ttj dƒ|ttj dƒgƒS)Nr9rÚforÚinÚifr>r?) rrrrÚappendrrZcomp_ifZ listmakerZcomp_forrr@rA) ZxpÚfpÚitZtestZfor_leafZin_leafZ inner_argsZif_leafÚinnerr r r ÚListCompWs(      þÿrMcCsV|D] }| ¡qttjdƒttj|dd�ttjddd�ttj|ƒg}ttj|ƒ}|S)NÚfromrrÚimport)ÚremoverrrrrÚimport_as_namesÚ import_from)Z package_nameZ name_leafsZleafÚchildrenÚimpr r r Ú FromImportos   ý rUc Cs¤|d ¡}|jtjkr"| ¡}nttj| ¡gƒ}|d}|rNdd„|Dƒ}ttjtt|dƒt|dƒƒttj|d ¡||d ¡gƒg|ƒ}|j |_ |S) Nr%ÚaftercSsg|] }| ¡‘qSr )r-)Ú.0r<r r r Ú �sz!ImportAndCall..érZlparZrpar) r-Útyperr/rr3r'r!r#r)r1ÚresultsÚnamesr%Z newarglistrVÚnewr r r Ú ImportAndCall‚s*     þÿÿüÿr^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érYrérr)rrrSrrÚlenrr ©r1r r r Úis_tupležs  ÿþýüûúrccCsXt|tƒoVt|jƒdkoVt|jdtƒoVt|jdtƒoV|jdjdkoV|jdjdkS)NrrYéÿÿÿÿr>r?)rrrarSrr rbr r r Úis_listªs  ÿþýüûrecCsttjtƒ|tƒgƒSr")rrrrrrbr r r Ú parenthesize¸srfÚsortedrÚsetÚanyÚallÚtupleÚsumÚminÚmaxÚ enumerateccs$t||ƒ}|r |Vt||ƒ}q dSr")Úgetattr)r%r&Únextr r r Ú attr_chain¿s 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&t t¡at t¡at t¡adatttg}t|t|dƒƒD]*\}}i}| ||¡r@|d|kr@dSq@dS)NTÚparentr1F) Ú pats_builtrZcompile_patternÚp0Úp1Úp2ÚziprrÚmatch)r1ZpatternsÚpatternrsr[r r r Úin_special_contextås    r{cCsš|j}|dk r|jtjkrdS|j}|jtjtjfkr:dS|jtjkrX|j d|krXdS|jtj ks’|jtj kr–|dk r„|jtj ks’|j d|kr–dSdS)NFrYT) Z prev_siblingrZrr,rsrÚfuncdefÚclassdefÚ expr_stmtrSZ parametersZ typedargslistr))r1Úprevrsr r r Úis_probably_builtinøs&  ÿþ þ ýr€cCsJ|dk rF|jtjkr>t|jƒdkr>|jd}|jtjkr>|jS|j}qdS)Nr`rr9) rZrÚsuiterarSrÚINDENTr rs)r1Úindentr r r Úfind_indentations  r„cCs>|jtjkr|S| ¡}|jd}|_ttj|gƒ}||_|Sr")rZrr�r-rsr)r1rsr�r r r Ú make_suites r…cCs$|jtjkr |j}|stdƒ‚q|S)Nz,root found before file_input node was found.)rZrZ file_inputrsÚ ValueErrorrbr r r Ú find_root&s   r‡cCst|t|ƒ|ƒ}t|ƒSr")Ú find_bindingr‡Úbool)Úpackager r1Zbindingr r r Údoes_tree_import/sr‹cCs|jtjtjfkSr")rZrÚ import_namerRrbr r r Ú is_import7sr�c Cs.dd„}t|ƒ}t|||ƒr dSd}}t|jƒD]F\}}||ƒsDq2t|j|d…ƒD]\}}||ƒsVqlqV||}qzq2|dkrÆt|jƒD]8\}}|jtjkrŒ|jrŒ|jdjtjkrŒ|d}qÆqŒ|dkrôt tj t tj dƒt tj |dd�gƒ} nt |t tj |dd�gƒ} | tƒg} | |t tj| ƒ¡dS)NcSs |jtjko|jot|jdƒS)NrY)rZrÚ simple_stmtrSr�rbr r r Úis_import_stmt>s ÿz$touch_import..is_import_stmtrYrrOrr)r‡r‹rorSrZrrŽrrCrrŒrrrUr8r.) rŠr r1r�ÚrootZ insert_posÚoffsetÚidxZnode2Úimport_rSr r r Ú touch_import;s8 ÿ þ r”cCs®|jD�] }d}|jtjkrVt||jdƒr4|St|t|jdƒ|ƒ}|rR|}�n0|jtjtjfkrŠt|t|jdƒ|ƒ}|r†|}�nü|jtj k�rt|t|jdƒ|ƒ}|r¸|}nTt |jdd…ƒD]@\}}|jt j krÊ|j dkrÊt|t|j|dƒ|ƒ}|rÊ|}qÊnx|jtk�r2|jdj |k�r2|}nTt|||ƒ�rF|}n@|jtjk�rbt|||ƒ}n$|jtjk�r†t||jdƒ�r†|}|r|�s˜|St|ƒr|SqdS)Nrrdr`r_ú:érY)rSrZrZfor_stmtÚ_findrˆr…Zif_stmtZ while_stmtZtry_stmtrorÚCOLONr Ú _def_symsÚ_is_import_bindingrŽr~r�)r r1rŠÚchildZretr<ÚiZkidr r r rˆisH   rˆcCsT|g}|rP| ¡}|jdkr4|jtkr4| |j¡q|jtjkr|j|kr|SqdS)Né)ÚpoprZÚ _block_symsÚextendrSrrr )r r1Znodesr r r r—”sr—cCs¢|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 k�rž|ròt |jdƒ  ¡|kròdS|jd}|�rt d|ƒ�rdS|jtj k�r0t ||ƒ�r0|S|jtjk�rh|jd}|jtjk�rž|j|k�rž|Sn6|jtjk�r†|j|k�r†|S|�rž|jtjk�rž|SdS)Nrr`rdr_Úas)rZrrŒrSZdotted_as_namesZdotted_as_namer rrrRÚstrÚstripr—rQZimport_as_nameÚSTAR)r1r rŠrTr›Zlastr<r r r ršžs@          rš)N)NN)N)N)N)N)N)5Zpgen2rZpytreerrZpygramrrr9rrrrrr!r'r*r$r2r4r8r:r=rBrErMrUr^rcrerfZconsuming_callsrrrurvrwrtr{r€r„r…r‡r‹r�r”r}r|r™rˆr#rŸr—ršr r r r Ús^         ÿ  -  *