ACC SHELL

Path : /usr/lib/python/lib2to3/fixes/
File Upload :
Current File : //usr/lib/python/lib2to3/fixes/fix_tuple_params.pyo

Ñò
sÄMc@s´dZddklZddklZddklZddklZlZl	Z	l
Z
lZlZd„Z
deifd„ƒYZd	„Zd
„Zgd
d„Zd„Zd
S(s:Fixer for function definitions with tuple parameters.

def func(((a, b), c), d):
    ...

    ->

def func(x, d):
    ((a, b), c) = x
    ...

It will also support lambdas:

    lambda (x, y): x + y -> lambda t: t[0] + t[1]

    # The parens are a syntax error in Python 3
    lambda (x): x + y -> lambda x: x + y
i(tpytree(ttoken(t
fixer_base(tAssigntNametNewlinetNumbert	SubscripttsymscCs*t|tiƒo|iditijS(Ni(t
isinstanceRtNodetchildrenttypeRtSTRING(tstmt((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pytis_docstringstFixTupleParamscBs eZdZd„Zd„ZRS(s
              funcdef< 'def' any parameters< '(' args=any ')' >
                       ['->' any] ':' suite=any+ >
              |
              lambda=
              lambdef< 'lambda' args=vfpdef< '(' inner=any ')' >
                       ':' body=any
              >
              cs@d|joˆi||ƒSg‰|d}|d}|diditijo'd}|didi}tƒ‰n"d}d}titidƒ‰t	‡‡‡fd	†}|it
ijo||ƒne|it
ijoQxNt
|iƒD]9\}}	|	it
ijo||	d
|djƒqúqúWnˆpdSxˆD]}
|d|
_qNW|}|djodˆd_n4t|di|ƒo|ˆd_|d}nxˆD]}
|d|
_qÃWˆ|di||+x=t|d|tˆƒdƒD]}||di|_qW|diƒdS(Ntlambdatsuitetargsiiis; ucs‰tˆiƒƒ}|iƒ}d|_t||iƒƒ}|o
d|_n|i|ƒˆitit	i
|ˆiƒgƒƒdS(Nuu (Rtnew_nametclonetprefixRtreplacetappendRR
Rtsimple_stmt(t	tuple_argt
add_prefixtntargR(t	new_linestendtself(s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pythandle_tuple?s	

Ru (ttransform_lambdaRRRtINDENTtvalueRRtLeaftFalseRttfpdeft
typedargslistt	enumeratetparentRRtrangetlentchanged(R tnodetresultsRRtstarttindentR!tiRtlinetafter((RR Rs4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyt	transform*sN



"

"cCs[|d}|d}t|dƒ}|itijo'|iƒ}d|_|i|ƒdSt|ƒ}t|ƒ}|i	t
|ƒƒ}t|ddƒ}	|i|	iƒƒx¤|iƒD]–}
|
itijo}|
i
|jomg}||
i
D]}||iƒqø~}
titi|	iƒg|
ƒ}|
i|_|
i|ƒq½q½WdS(NRtbodytinneru R(t
simplify_argsRRtNAMERRRtfind_paramstmap_to_indexRt
tuple_nameRt
post_orderR$RR
Rtpower(R R.R/RR6R7tparamstto_indexttup_namet	new_paramRt_[1]tct
subscriptstnew((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyR"js*

	

#.(t__name__t
__module__tPATTERNR5R"(((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyRs		@cCsu|ititifjo|S|itijo-x%|itijo|id}q7W|Std|ƒ‚dS(NisReceived unexpected node %s(RRtvfplistRR9tvfpdefRtRuntimeError(R.((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyR8‡scCs|itijot|idƒS|itijo|iSg}|iD]*}|itijo|t|ƒqNqN~S(Ni(	RRRKR:RRR9R$tCOMMA(R.RCRD((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyR:’s
cCs‚|djo
h}nxdt|ƒD]V\}}tt|ƒƒg}t|tƒot||d|ƒq$||||<q$W|S(Ntd(tNoneR)RRR	tlistR;(t
param_listRRNR2tobjttrailer((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyR;™s


cCsXg}xB|D]:}t|tƒo|it|ƒƒq
|i|ƒq
Wdi|ƒS(Nu_(R	RPRR<tjoin(RQtlRR((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyR<¤sN(t__doc__tRtpgen2RRt
fixer_utilRRRRRRRtBaseFixRR8R:ROR;R<(((s4/usr/lib/python2.6/lib2to3/fixes/fix_tuple_params.pyt<module>s.	h		

ACC SHELL 2018