Files
PowerToys/PythonHome/Lib/lib2to3/fixes/fix_tuple_params.pyc

64 lines
5.2 KiB
Plaintext
Raw Normal View History

2014-07-09 18:15:23 +08:00
<03>
<EFBFBD>W`Sc@s<>dZddlmZddlmZddlmZddlmZmZm Z m
Z
m Z m Z d<00>Z dejfd<00><00>YZd <00>Zd
<00>Zgd d <00>Zd <00>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|tj<00>o(|jdjtjkS(Ni(t
isinstanceRtNodetchildrenttypeRtSTRING(tstmt((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyt is_docstringstFixTupleParamscBs,eZdZeZdZd<00>Zd<00>ZRS(is
funcdef< 'def' any parameters< '(' args=any ')' >
['->' any] ':' suite=any+ >
|
lambda=
lambdef< 'lambda' args=vfpdef< '(' inner=any ')' >
':' body=any
>
c s0d|kr<00>j||<00>Sg<00>|d}|d}|djdjtjkryd}|djdj}t<00><00>n!d}d}tjtjd<00><00>t <00><00><00>fd <00>}|jt
j kr<>||<00>n`|jt
j kr1xKt |j<00>D]7\}} | jt
j kr<>|| d
|dk<00>q<>q<>Wn<00>s;dSx<00>D]}
|d|
_qBW|} |dkr{d <00>d_n1t|dj|<19>r<>|<00>d_|d} nx<00>D]}
|d|
_q<>W<>|dj| | +x=t| d| t<00><00>d<17>D]}||dj|_qW|dj<00>dS( Ntlambdatsuitetargsiiiu; ucs<>t<00>j<00><00>}|j<00>}d|_t||j<00><00>}|rNd|_n|j|<00><01>jtjt j
|<00>j<00>g<00><00>dS(Nuu ( Rtnew_nametclonetprefixRtreplacetappendRR
Rt simple_stmt(t tuple_argt
add_prefixtntargR(tendt new_linestself(s'.\Lib\lib2to3\fixes\fix_tuple_params.pyt handle_tupleCs    Ru (ttransform_lambdaR R RtINDENTtvalueRRtLeaftFalseRttfpdeft typedargslistt enumeratetparentRRtrangetlentchanged( R tnodetresultsRRtstarttindentR!tiRtlinetafter((RRR s'.\Lib\lib2to3\fixes\fix_tuple_params.pyt transform.sF 

         (cCsN|d}|d}t|d<19>}|jtjkr\|j<00>}d|_|j|<00>dSt|<00>}t|<00>}|j t
|<00><00>}t |dd<00>} |j| j<00><00>x<>|j <00>D]<5D>}
|
jtjkr<>|
j |kr<>g||
j D]} | j<00>^q<>} tjtj| j<00>g| <17>} |
j| _|
j| <00>q<>q<>WdS(NRtbodytinneru R(t simplify_argsR RtNAMERRRt find_paramst map_to_indexRt
tuple_nameRt
post_orderR$RR
Rtpower(R R.R/RR6R7tparamstto_indexttup_namet new_paramRtct
subscriptstnew((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyR"ns(

     !&  (t__name__t
__module__t run_ordertTruet BM_compatibletPATTERNR5R"(((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyRs

 @cCso|jtjtjfkr|S|jtjkr[x#|jtjkrV|jd}q4W|Std|<16><00>dS(NisReceived unexpected node %s(R RtvfplistRR9tvfpdefR t RuntimeError(R.((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyR8<00>scCsn|jtjkr#t|jd<19>S|jtjkr<|jSg|jD]$}|jtjkrFt|<00>^qFS(Ni( R RRMR:R RR9R$tCOMMA(R.RC((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyR:<00>s
cCs<>|dkri}nxht|<00>D]Z\}}ttt|<00><00><00>g}t|t<00>rnt||d|<00>q"||||<q"W|S(Ntd(tNoneR)RRtunicodeR tlistR;(t
param_listRRPR2tobjttrailer((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyR;<00>s  cCsVg}x@|D]8}t|t<00>r8|jt|<00><00>q |j|<00>q Wdj|<00>S(Nu_(R RSRR<tjoin(RTtlRU((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyR<<00>s  N(t__doc__tRtpgen2RRt
fixer_utilRRRRRRRtBaseFixRR8R:RQR;R<(((s'.\Lib\lib2to3\fixes\fix_tuple_params.pyt<module>s. l