a  zef;@sddlmZddlmZmZddlmZddlm Z ddZ ddZ d d Z d d Z dMddZddZddZddZe e fddZdNddZddZddZdOddZd d!ZdPd"d#ZdQd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zhd0Zd1d2Z d3a!d4a"d5a#d6a$d7d8Z%d9d:Z&d;d<Z'd=d>Z(d?d@Z)dAdBZ*dCdDZ+dEdFZ,ej-ej.hZ/dRdGdHZ0ej.ej-ej1hZ2dIdJZ3dSdKdLZ4d S)T)token)LeafNode)python_symbols)patcompcCsttj|ttjd|gS)N=)rsymsargumentrrEQUAL)keywordvaluer F/opt/bitninja-python-dojo/embedded/lib/python3.9/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 rprefix) isinstancelistrrratomrrr )targetsourcer r rAssigns  rNcCsttj||dSNr)rrNAME)namerr r rName$sr"cCs|ttjt|ggSN)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 rArgList4sr3cCs&ttj|t|g}|dur"||_|Sr#)rrpowerr3r) func_namer1rr2r r rCall;sr6cCs ttjdS)N rrNEWLINEr r r rNewlineBsr:cCs ttjdS)Nr8r r r r BlankLineFsr<cCsttj||dSr)rrNUMBER)nrr r rNumberJsr?cCs"ttjttjd|ttjdgS)N[])rrr$rrLBRACERBRACE)Z index_noder r r SubscriptMs rDcCsttj||dSr)rrSTRING)stringrr r rStringSsrGc Csd|_d|_d|_ttjd}d|_ttjd}d|_||||g}|rtd|_ttjd}d|_|ttj||gttj|ttj |g}ttj ttj d|ttj dgS)Nr;rforinifr@rA) rrrr appendrrZcomp_ifZ listmakerZcomp_forrrBrC) ZxpfpittestZfor_leafZin_leafZ inner_argsZif_leafinnerr r rListCompWs(      rPcCsV|D] }|qttjdttj|ddttjdddttj|g}ttj|}|S)Nfromrrimport)removerrr rrimport_as_names import_from)Z package_nameZ name_leafsZleafchildrenimpr r r FromImportos    rXc Cs|d}|jtjkr"|}nttj|g}|d}|rNdd|D}ttjtt|dt|dttj|d||dgg|}|j |_ |S) Nr&aftercSsg|] }|qSr )r.).0r>r r r z!ImportAndCall..rZlparZrpar) r.typerr0rr4r(r"r$r)r2resultsnamesr&Z newarglistrYnewr r r ImportAndCalls*     rbcCst|tr |jttgkr dSt|tot|jdkot|jdtot|jdtot|jdto|jdjdko|jdjdkS)NTr]rrr)rrrVrrlenrr r2r r ris_tuples  rgcCsXt|toVt|jdkoVt|jdtoVt|jdtoV|jdjdkoV|jdjdkS)Nrr]r@rA)rrrerVrr rfr r ris_lists  ricCsttjt|tgSr#)rrrrrrfr r r parenthesizesrj> allsortedany enumeratetuplemaxminsetrsumccs$t||}|r |Vt||}q dSr#)getattr)r&r'nextr r r attr_chains rvzefor_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|ur@dSq@dS)NTparentr2F) pats_builtrcompile_patternp0p1p2ziprvmatch)r2patternspatternrwr_r r rin_special_contexts    rcCs|j}|dur|jtjkrdS|j}|jtjtjfvr:dS|jtjkrX|j d|urXdS|jtj ks|jtj kr|dur|jtj ks|j d|urdSdS)NFr]T) Z prev_siblingr^rr-rwrfuncdefclassdef expr_stmtrV parametersZ typedargslistr*)r2prevrwr r ris_probably_builtins&    rcCsJ|durF|jtjkr>t|jdkr>|jd}|jtjkr>|jS|j}qdS)Nrdrr;) r^rsuitererVrINDENTr rw)r2indentr r rfind_indentations  rcCs>|jtjkr|S|}|jd}|_ttj|g}||_|Sr#)r^rrr.rwr)r2rwrr r r make_suites rcCs$|jtjkr |j}|stdq|S)Nz,root found before file_input node was found.)r^rZ file_inputrw ValueErrorrfr r r find_root&s   rcCst|t||}t|Sr#) find_bindingrbool)packager!r2Zbindingr r rdoes_tree_import/srcCs|jtjtjfvSr#)r^r import_namerUrfr 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|durt tj t tj dt tj |ddg} nt |t tj |ddg} | tg} ||t tj| dS)NcSs |jtjko|jot|jdS)Nr])r^r simple_stmtrVrrfr r ris_import_stmt>s z$touch_import..is_import_stmtr]rrRrr)rrrnrVr^rrrrErrrr rXr:r/) rr!r2rrootZ insert_posoffsetidxZnode2import_rVr r r touch_import;s8   rcCs|jD]}d}|jtjkrVt||jdr4|St|t|jd|}|rR|}n0|jtjtjfvrt|t|jd|}|r|}n|jtj krt|t|jd|}|r|}nTt |jddD]@\}}|jt j kr|j dkrt|t|j|d|}|r|}qnx|jtvr2|jdj |kr2|}nTt|||rF|}n@|jtjkrbt|||}n$|jtjkrt||jdr|}|r|s|St|r|SqdS)Nrrhrdrc:r])rVr^rZfor_stmt_findrrZif_stmtZ while_stmtZtry_stmtrnrCOLONr _def_syms_is_import_bindingrrr)r!r2rchildretr>iZkidr r rrisB      rcCsT|g}|rP|}|jdkr4|jtvr4||jq|jtjkr|j|kr|SqdS)N)popr^ _block_symsextendrVrr r )r!r2Znodesr r rrsrcCs|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)Nrrdrhrcas)r^rrrVZdotted_as_namesZdotted_as_namer rr rUstrstriprrTZimport_as_nameSTAR)r2r!rrWrZlastr>r r rrs@          r)N)NN)N)N)N)N)N)5Zpgen2rZpytreerrZpygramrrr;rrrrrr"r(r+r%r3r6r:r<r?rDrGrPrXrbrgrirjZconsuming_callsrvrzr{r|rxrrrrrrrrrrrrr$rrrr r r rsV           -  *