Your IP : 18.224.44.207


Current Path : /opt/alt/python310/lib64/python3.10/lib2to3/fixes/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/lib2to3/fixes/__pycache__/fix_tuple_params.cpython-310.pyc

o

6��f��@s�dZddlmZddlmZddlmZddlmZmZm	Z	m
Z
mZmZdd�Z
Gdd	�d	ej�Zd
d�Zdd
�Zgdfdd�Zdd�ZdS)a: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
�)�pytree)�token)�
fixer_base)�Assign�Name�Newline�Number�	Subscript�symscCst|tj�o|jdjtjkS)N�)�
isinstancer�Node�children�typer�STRING)�stmt�r�E/opt/alt/python310/lib64/python3.10/lib2to3/fixes/fix_tuple_params.py�is_docstrings�rc@s(eZdZdZdZdZdd�Zdd�ZdS)	�FixTupleParams�Ta
              funcdef< 'def' any parameters< '(' args=any ')' >
                       ['->' any] ':' suite=any+ >
              |
              lambda=
              lambdef< 'lambda' args=vfpdef< '(' inner=any ')' >
                       ':' body=any
              >
              cs�d|vr
��||�Sg�|d}|d}|djdjtjkr-d}|djdj}t��nd}d}t�tjd��d���fd
d�	}|jt	j
krL||�n|jt	jkrjt|j�D]\}}	|	jt	j
kri||	|dkd�qW�sndS�D]}
|d|
_
qp|}|dkr�d
�d_nt|dj|�r�|�d_|d}�D]}
|d|
_
q��|dj||�<t|d|t��d�D]
}||dj|_q�|d��dS)N�lambda�suite�argsr�rz; �Fcs\t����}|��}d|_t||���}|rd|_|�|���t�t	j
|���g��dS)Nr� )r�new_name�clone�prefixr�replace�appendrr
r
Zsimple_stmt)Z	tuple_arg�
add_prefix�n�argr��endZ	new_lines�selfrr�handle_tupleCs


�z.FixTupleParams.transform.<locals>.handle_tuple)r"r)F)�transform_lambdarrr�INDENT�valuerrZLeafr
ZtfpdefZ
typedargslist�	enumerate�parentrr�range�lenZchanged)r'�node�resultsrr�start�indentr(�ir$�lineZafterrr%r�	transform.sH
�
zFixTupleParams.transformc
Cs�|d}|d}t|d�}|jtjkr"|��}d|_|�|�dSt|�}t|�}|�	t
|��}t|dd�}	|�|	���|��D],}
|
jtjkrn|
j
|vrndd�||
j
D�}t�tj|	��g|�}|
j|_|
�|�qBdS)Nr�body�innerr)rcSsg|]}|���qSr)r��.0�crrr�
<listcomp>�sz3FixTupleParams.transform_lambda.<locals>.<listcomp>)�
simplify_argsrr�NAMErrr �find_params�map_to_indexr�
tuple_namerZ
post_orderr+rr
r
Zpower)
r'r0r1rr7r8�paramsZto_indexZtup_nameZ	new_paramr#Z
subscripts�newrrrr)ns.
�
��zFixTupleParams.transform_lambdaN)�__name__�
__module__�__qualname__Z	run_orderZ
BM_compatibleZPATTERNr6r)rrrrrs
@rcCsT|jtjtjfvr|S|jtjkr$|jtjkr"|jd}|jtjks|Std|��)NrzReceived unexpected node %s)rr
Zvfplistrr>�vfpdefr�RuntimeError�r0rrrr=�s
�r=cCs<|jtjkr
t|jd�S|jtjkr|jSdd�|jD�S)NrcSs g|]}|jtjkrt|��qSr)rr�COMMAr?r9rrrr<�s zfind_params.<locals>.<listcomp>)rr
rGr?rrr>r+rIrrrr?�s
r?NcCsZ|duri}t|�D] \}}ttt|���g}t|t�r$t|||d�q
||||<q
|S)N)�d)r,r	r�strr�listr@)�
param_listrrKr4�objZtrailerrrrr@�s
r@cCs<g}|D]}t|t�r|�t|��q|�|�qd�|�S)N�_)rrMr!rA�join)rN�lrOrrrrA�s

rA)�__doc__rrZpgen2rrZ
fixer_utilrrrrr	r
rZBaseFixrr=r?r@rArrrr�<module>s l

?>