Your IP : 3.145.80.247
U
i�f� � @ s� d Z ddlmZ ddlmZ ddlmZ ddlmZmZm Z m
Z
mZmZ dd� Z
G dd � d ej�Zd
d� Zdd
� Zg dfdd�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�symsc C s t | tj�o| jd jtjkS )N� )�
isinstancer �Node�children�typer �STRING)�stmt� r �C/opt/alt/python38/lib64/python3.8/lib2to3/fixes/fix_tuple_params.py�is_docstring s �r c @ s( e Zd ZdZdZdZdd� 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|kr�� ||�S g �|d }|d }|d jd jtjkrZd}|d jd j}t� � nd}d}t�tjd�� d� ��fd
d� }|jt j
kr�||� n<|jt jkr�t|j�D ]$\}} | jt j
kr�|| |dkd� q��s�d S �D ]}
|d |
_
q�|}|dk�r
d
�d _n&t|d j| ��r0|�d _|d }�D ]}
|d |
_
�q4�|d j||�<