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



]@sddlmZddlmZddlmZddlmZmZmZm	Z	m
Z
mZddZGdddej
Zd	d
ZddZgd
ddZddZd
S))pytree)token)
fixer_base)AssignNameNewlineNumber	SubscriptsymscCs)t|tjo(|jdjtjkS)N)
isinstancerNodechildrentyperSTRING)stmtr5/opt/alt/python35/lib64/python3.5/fix_tuple_params.pyis_docstringsrc@s:eZdZdZdZdZddZddZdS)	FixTupleParamsTa
              funcdef< 'def' any parameters< '(' args=any ')' >
                       ['->' any] ':' suite=any+ >
              |
              lambda=
              lambdef< 'lambda' args=vfpdef< '(' inner=any ')' >
                       ':' body=any
              >
              cs-d|krj||Sg|d}|d}|djdjtjkryd}|djdj}tn!d}d}tjtjdd	fd
d}|jt	j
kr||nZ|jt	jkr.xEt|jD]4\}}	|	jt	j
kr||	d|dkqWs8dSxD]}
|d|
_
q?W|}|dkrxd
d_n.t|dj|r|d_|d}xD]}
|d|
_
qW|dj||<x=t|d|tdD]}||dj|_qW|djdS)Nlambdasuiteargsrrz; Fcstj}|j}d|_t||j}|rKd|_|j|jtjt	j
|jgdS)Nr )rnew_namecloneprefixrreplaceappendrr
r
Zsimple_stmt)Z	tuple_arg
add_prefixnargr)end	new_linesselfrrhandle_tupleCs		
z.FixTupleParams.transform.<locals>.handle_tupler"r)transform_lambdarrrINDENTvaluerrZLeafr
ZtfpdefZ
typedargslist	enumerateparentrrrangelenZchanged)r'noderesultsrrstartindentr(ir$lineafterr)r%r&r'r	transform.sF






(zFixTupleParams.transformc
Cs?|d}|d}t|d}|jtjkr\|j}d|_|j|dSt|}t|}|j	t
|}t|dd}	|j|	jx|jD]|}
|
jtjkr|
j
|krdd||
j
D}tjtj|	jg|}|
j|_|
j|qWdS)NrbodyinnerrrcSsg|]}|jqSr)r).0crrr
<listcomp>s	z3FixTupleParams.transform_lambda.<locals>.<listcomp>)
simplify_argsrrNAMErrr find_paramsmap_to_indexr
tuple_namerZ
post_orderr+rr
r
Zpower)
r'r0r1rr8r9paramsZto_indexZtup_nameZ	new_paramr#Z
subscriptsnewrrrr)ns(

	
!zFixTupleParams.transform_lambdaN)__name__
__module____qualname__Z	run_orderZ
BM_compatibleZPATTERNr7r)rrrrrs

@rcCso|jtjtjfkr|S|jtjkr[x#|jtjkrV|jd}q4W|Std|dS)NrzReceived unexpected node %s)rr
Zvfplistrr>vfpdefrRuntimeError)r0rrrr=sr=cCsP|jtjkr#t|jdS|jtjkr<|jSdd|jDS)NrcSs.g|]$}|jtjkrt|qSr)rrCOMMAr?)r:r;rrrr<s	zfind_params.<locals>.<listcomp>)rr
rGr?rrr>r+)r0rrrr?s
r?NcCs|dkri}xht|D]Z\}}ttt|g}t|trkt||d|q||||<qW|S)Nd)r,r	rstrrlistr@)
param_listrrJr4objZtrailerrrrr@sr@cCsVg}x@|D]8}t|tr8|jt|q
|j|q
Wdj|S)N_)rrLr!rAjoin)rMlrNrrrrAs
rA)rrZpgen2rrZ
fixer_utilrrrrr	r
rZBaseFixrr=r?r@rArrrr<module>s.l
Back to Directory File Manager