MINI MINI MANI MO
3
\ @ s d Z ddlmZ ddlmZ ddlmZ ddlmZmZm Z m
Z
mZmZ dd Z
G dd d ejZd
d Zdd
Zg dfddZdd 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)AssignNameNewlineNumber Subscriptsymsc C s t | tjo| jd jtjkS )N )
isinstancer Nodechildrentyper STRING)stmt r 6/usr/lib64/python3.6/lib2to3/fixes/fix_tuple_params.pyis_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|krj ||S g |d }|d }|d jd jtjkrZd}|d jd j}t nd}d}tjtjd d fd
d }|jt j
kr|| n@|jt jkrx2t|jD ]$\}} | jt j
kr|| |dkd qW sd S xD ]}
|d |
_
qW |}|dkrd
d _n&t|d j| r8|d _|d }xD ]}
|d |
_
q>W |d j||<