Viewing File: /opt/alt/python35/lib64/python3.5/lib2to3/__pycache__/fixer_util.cpython-35.opt-2.pyc



];
@spddlmZddlmZddlmZmZddlmZ	ddl
mZddZd	d
Z
ddZd
dZdddZddZddZddZe
eddZddddZddZddZdd d!Zd"d#Zdd$d%Zdd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z d2d3d4d5d6d7d8d9d:d;h
Z!d<d=Z"d>a#d?a$d@a%dAa&dBdCZ'dDdEZ(dFdGZ)dHdIZ*dJdKZ+dLdMZ,dNdOZ-dPdQZ.e	j/e	j0hZ1ddRdSZ2e	j0e	j/e	j3hZ4dTdUZ5ddVdWZ6dS)X)islice)token)LeafNode)python_symbols)patcompcCs%ttj|ttjd|gS)N=)rsymsargumentrrEQUAL)keywordvaluer//opt/alt/python35/lib64/python3.5/fixer_util.py
KeywordArgs	rcCsttjdS)N()rrLPARrrrrLParensrcCsttjdS)N))rrRPARrrrrRParensrcCsft|ts|g}t|ts9d|_|g}ttj|ttjdddg|S)N r	prefix)	
isinstancelistrrr
atomrrr)targetsourcerrrAssigns				rNcCsttj|d|S)Nr)rrNAME)namerrrrName&sr"cCs|ttjt|ggS)N)rr
trailerDot)objattrrrrAttr*sr'cCsttjdS)N,)rrCOMMArrrrComma.sr*cCsttjdS)N.)rrDOTrrrrr$2sr$cCsJttj|j|jg}|rF|jdttj||S)Nr)rr
r#cloneinsert_childarglist)argsZlparenZrparennoderrrArgList6s$r2cCs7ttj|t|g}|dk	r3||_|S)N)rr
powerr2r)	func_namer0rr1rrrCall=s	r5cCsttjdS)N
)rrNEWLINErrrrNewlineDsr8cCsttjdS)N)rrr7rrrr	BlankLineHsr:cCsttj|d|S)Nr)rrNUMBER)nrrrrNumberLsr=cCs1ttjttjd|ttjdgS)N[])rr
r#rrLBRACERBRACE)Z
index_noderrr	SubscriptOsrBcCsttj|d|S)Nr)rrSTRING)stringrrrrStringUsrEc	Csd|_d|_d|_ttjd}d|_ttjd}d|_||||g}|rd|_ttjd}d|_|jttj||gttj|ttj	|g}ttj
ttjd|ttjdgS)Nr9rforinifr>r?)
rrrr appendrr
Zcomp_ifZ	listmakerZcomp_forrr@rA)	ZxpfpitZtestZfor_leafZin_leafZ
inner_argsZif_leafinnerrrrListCompYs$							$	rMcCsx|D]}|jqWttjdttj|ddttjdddttj|g}ttj|}|S)Nfromrrimport)removerrr rr
import_as_namesimport_from)Zpackage_nameZ
name_leafsZleafchildrenimprrr
FromImportqs
rUc	Cs|dj}|jtjkr1|j}nttj|jg}|d}|rodd|D}ttjtt|dt|dttj|dj||djgg|}|j	|_	|S)	Nr%aftercSsg|]}|jqSr)r-).0r<rrr
<listcomp>s	z!ImportAndCall.<locals>.<listcomp>rrZlparZrpar)
r-typer
r/rr3r'r"r#r)r1resultsnamesr%Z
newarglistrVnewrrr
ImportAndCalls
	Zr]cCst|tr.|jttgkr.dSt|tot|jdkot|jdtot|jdtot|jdto|jdjdko|jdjdkS)NTrrrr)rrrSrrlenrr)r1rrris_tuples*racCszt|toyt|jdkoyt|jdtoyt|jdtoy|jdjdkoy|jdjdkS)Nrrr>r?rb)rrr`rSrr)r1rrris_listsrccCsttjt|tgS)N)rr
rrr)r1rrrparenthesizesrdsortedrsetanyalltuplesumminmax	enumerateccs4t||}x|r/|Vt||}qWdS)N)getattr)r%r&nextrrr
attr_chains	rpzefor_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<node=any any*> ')' >
    any*
>
FcCsts9tjtatjtatjtadatttg}xRt|t|dD]8\}}i}|j||ra|d|kradSqaWdS)NTparentr1F)	
pats_builtrZcompile_patternp0p1p2ziprpmatch)r1patternspatternrqrZrrrin_special_contexts%"rzcCs|j}|dk	r+|jtjkr+dS|j}|jtjtjfkrSdS|jtjkr||j	d|kr|dS|jtj
ks|jtjkr|dk	r|jtjks|j	d|krdSdS)NFrT)
Zprev_siblingrYrr,rqr
funcdefclassdef	expr_stmtrSZ
parametersZ
typedargslistr))r1prevrqrrris_probably_builtins		%rcCsmxf|dk	rh|jtjkr\t|jdkr\|jd}|jtjkr\|jS|j}qWdS)Nr_rr9)	rYr
suiter`rSrINDENTrrq)r1indentrrrfind_indentations'

rcCsW|jtjkr|S|j}|jd}|_ttj|g}||_|S)N)rYr
rr-rqr)r1rqrrrr
make_suites	rcCs8x1|jtjkr3|j}|stdqW|S)Nz,root found before file_input node was found.)rYr
Z
file_inputrq
ValueError)r1rrr	find_root(s
	rcCs"t|t||}t|S)N)find_bindingrbool)packager!r1Zbindingrrrdoes_tree_import1srcCs|jtjtjfkS)N)rYr
import_namerR)r1rrr	is_import9srcCsdd}t|}t|||r.dSd}}xnt|jD]]\}}||scqHx4t|j|dD]\}}||s}Pq}W||}PqHW|dkrx\t|jD]K\}}|jtjkr|jr|jdjtjkr|d}PqW|dkrYt	tj
ttjdttj|ddg}	n$t
|ttj|ddg}	|	tg}
|j|t	tj|
dS)NcSs,|jtjko+|jo+t|jdS)Nr)rYr
simple_stmtrSr)r1rrris_import_stmt@sz$touch_import.<locals>.is_import_stmtrrrOrr)rrrmrSrYr
rrrCrrrr rUr8r.)rr!r1rrootZ
insert_posoffsetidxZnode2import_rSrrrtouch_import=s4
&

	!$rcCs<x5|jD]*}d}|jtjkrpt||jdrB|St|t|jd|}|r|}n|jtjtjfkrt|t|jd|}|r|}n[|jtj	krvt|t|jd|}|r|}qxt
|jddD]\\}}|jtjkr|j
dkrt|t|j|d|}|r|}qWn|jtkr|jdj
|kr|}npt|||r|}nU|jtjkrt|||}n.|jtjkrt||jdr|}|r
|s$|St|r
|Sq
WdS)	Nrr_r^:rrbrb)rSrYr
Zfor_stmt_findrrZif_stmtZ
while_stmtZtry_stmtrmrCOLONr	_def_syms_is_import_bindingrr}r)r!r1rchildretr<iZkidrrrrksH			&!#
%		rcCs||g}xl|rw|j}|jdkrO|jtkrO|j|jq|jtjkr|j|kr|SqWdS)N)poprY_block_symsextendrSrr r)r!r1Znodesrrrrs		!rcCs$|jtjkr|r|jd}|jtjkrx|jD]Z}|jtjkrw|jdj|kr|SqB|jtjkrB|j|krB|SqBWq |jtjkr|jd}|jtjkr|j|kr|Sq |jtjkr |j|kr |Sn|jtj	kr |rMt
|jdj|krMdS|jd}|rstd|rsdS|jtj
krt||r|S|jtjkr|jd}|jtjkr |j|kr |SnA|jtjkr|j|kr|S|r |jtjkr |SdS)Nrr_r^asrb)rYr
rrSZdotted_as_namesZdotted_as_namerrr rRstrstriprrQZimport_as_nameSTAR)r1r!rrTrZlastr<rrrrs@
!
!!%
!
!!r)7	itertoolsrZpgen2rZpytreerrZpygramrr
r9rrrrrr"r'r*r$r2r5r8r:r=rBrErMrUr]rarcrdZconsuming_callsrprsrtrurrrzrrrrrrrr|r{rrr#rrrrrrr<module>sZ		-*
Back to Directory File Manager