o ?Ogf;@s ddlmZddlmZmZddlmZddlm Z ddZ ddZ d d Z d d Z dMddZddZddZddZe e fddZdNddZddZddZdMddZd d!ZdMd"d#ZdMd$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/dMdGdHZ0ej.ej-ej1hZ2dIdJZ3dMdKdLZ4d S)O)token)LeafNode)python_symbols)patcompcCsttj|ttjd|gS)N=)rsymsZargumentrrEQUAL)keywordvaluer 9/opt/alt/python310/lib64/python3.10/lib2to3/fixer_util.py KeywordArgsrcC ttjdS)N()rrLPARr r r r LParen rcCr)N))rrRPARr r r r RParenrrcCsJ t|ts |g}t|tsd|_|g}ttj|ttjdddg|S)N rprefix) isinstancelistrrratomrrr )targetsourcer r r Assigns  rNcC ttj||dSNr)rrNAME)namerr r r Name$r$cCs |ttjt|ggSN)rrtrailerDot)objattrr r r Attr(sr+cC ttjdS)N,)rrCOMMAr r r r Comma, r/cCr,)N.)rrDOTr r r r r(0r0r(cCs6 ttj||g}|r|dttj||S)Nr)rrr'clone insert_childarglist)argsZlparenZrparennoder r r ArgList4s r8cCs( ttj|t|g}|dur||_|Sr&)rrpowerr8r)Z func_namer6rr7r r r Call;s r:cCr,)N rrNEWLINEr r r r NewlineBr0r>cCr,)Nr<r r r r BlankLineFr0r@cCsttj||dSr!)rrNUMBER)nrr r r NumberJsrCcCs$ ttjttjd|ttjdgS)N[])rrr'rrLBRACERBRACE)Z index_noder r r SubscriptMs  rHcCr r!)rrSTRING)stringrr r r StringSr%rKc Cs d|_d|_d|_ttjd}d|_ttjd}d|_||||g}|r;d|_ttjd}d|_|ttj||gttj|ttj |g}ttj ttj d|ttj dgS)Nr?rforinifrDrE) rrrr"appendrrZcomp_ifZ listmakerZcomp_forrrFrG) ZxpfpittestZfor_leafZin_leafZ inner_argsZif_leafinnerr r r ListCompWs*      rTcCsX |D]}|qttjdttj|ddttjdddttj|g}ttj|}|S)Nfromrrimport)removerrr"rrimport_as_names import_from)Z package_nameZ name_leafsZleafchildrenimpr r r FromImportos    r\c Cs |d}|jtjkr|}n ttj|g}|d}|r(dd|D}ttjtt|dt|dttj|d||dgg|}|j |_ |S) Nr)aftercSsg|]}|qSr )r3).0rBr r r sz!ImportAndCall..rZlparZrpar) r3typerr5rr9r+r$r'r)r7resultsnamesr)Z newarglistr]newr r r ImportAndCalls,     recCs t|tr|jttgkrdSt|toDt|jdkoDt|jdtoDt|jdtoDt|jdtoD|jdjdkoD|jdjdkS)NTr`rrr)rrrZrrlenrr r7r r r is_tuples   rjcCsZ t|to,t|jdko,t|jdto,t|jdto,|jdjdko,|jdjdkS)Nrr`rDrE)rrrhrZrr rir r r is_lists  rlcCsttjt|tgSr&)rrrrrrir r r parenthesizesrm> allanysetsortedtuplesumminrmax enumerateccs. t||}|r|Vt||}|s dSdSr&)getattr)r)r*nextr r r attr_chains   ryzefor_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* > FcCsr tsttattattadatttg}t|t|dD]\}}i}|||r6|d|ur6dSq!dS)NTparentr7F) pats_builtrZcompile_patternp0p1p2ziprymatch)r7patternspatternrzrbr r r in_special_contexts    rcCs |j}|dur|jtjkrdS|j}|jtjtjfvrdS|jtjkr-|j d|ur-dS|jtj ksJ|jtj krL|durC|jtj ksJ|j d|urLdSdS)NFr`T) Z prev_siblingrarr2rzrfuncdefclassdef expr_stmtrZZ parametersZ typedargslistr.)r7prevrzr r r is_probably_builtins  rcCsR |dur'|jtjkr t|jdkr |jd}|jtjkr |jS|j}|dusdS)Nrgrr?) rarsuiterhrZrINDENTr rz)r7indentr r r find_indentations  rcCs>|jtjkr|S|}|jd}|_ttj|g}||_|Sr&)rarrr3rzr)r7rzrr r r make_suites rcCs0 |jtjkr|j}|std|jtjks|S)Nz,root found before file_input node was found.)rarZ file_inputrz ValueErrorrir r r find_root&s  rcCs t|t||}t|Sr&) find_bindingrbool)packager#r7Zbindingr r r does_tree_import/srcCs |jtjtjfvSr&)rar import_namerYrir r r is_import7src Cs, dd}t|}t|||rdSd}}t|jD]!\}}||s#qt|j|dD] \}}||s6nq,||}|dkrbt|jD]\}}|jtjkra|jra|jdjtjkra|d}nqE|duryt tj t tj dt tj |ddg} n t |t tj |ddg} | tg} ||t tj| dS)NcSs |jtjko|jot|jdS)Nr`)rar simple_stmtrZrrir r r is_import_stmt>s z$touch_import..is_import_stmtr`rrVrr)rrrvrZrarrrrIrrrr"r\r>r4) rr#r7rrootZ insert_posoffsetidxZnode2import_rZr r r touch_import;s<   rcCs |jD]}d}|jtjkr*t||jdr|St|t|jd|}|r)|}n|jtjtjfvrCt|t|jd|}|rB|}nw|jtj krt|t|jd|}|rY|}nat |jddD] \}}|jt j kr|j dkrt|t|j|d|}|r|}qbn6|jtvr|jdj |kr|}n&t|||r|}n|jtjkrt|||}n|jtjkrt||jdr|}|r|s|St|r|SqdS)Nrrkrgrf:r`)rZrarZfor_stmt_findrrZif_stmtZ while_stmtZtry_stmtrvrCOLONr _def_syms_is_import_bindingrrr)r#r7rchildZretrBiZkidr r r risN      rcCsV|g}|r)|}|jdkr|jtvr||jn |jtjkr'|j|kr'|S|sdS)N)popra _block_symsextendrZrr"r )r#r7Znodesr r r rsrcCs |jtjkrg|sg|jd}|jtjkr>|jD]$}|jtjkr,|jdj|kr+|Sq|jtjkr;|j|kr;|SqdS|jtjkrX|jd}|jtjkrV|j|krV|SdS|jtjkre|j|kre|SdS|jtj kr|r|t |jd |kr|dS|jd}|rt d|rdS|jtj krt ||r|S|jtjkr|jd}|jtjkr|j|kr|SdS|jtjkr|j|kr|S|r|jtjkr|SdS)Nrrgrkrfas)rarrrZZdotted_as_namesZdotted_as_namer rr"rYstrstriprrXZimport_as_nameSTAR)r7r#rr[rZlastrBr r r rsN         rr&)NN)5Zpgen2rZpytreerrZpygramrrr?rrrrrr$r+r/r(r8r:r>r@rCrHrKrTr\rerjrlrmZconsuming_callsryr|r}r~r{rrrrrrrrrrrrr'rrrr r r r sZ            - *