j f @ s d Z d d l m Z d d l m Z d d l m Z d d l m Z m Z m Z m
Z
m Z m Z d d Z
Gd d d e j Z d
d Z d d
Z g d d d Z d d Z d S)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 | t j o( | j d j t j k S)N )
isinstancer Nodechildrentyper STRING)stmt r C/opt/alt/python34/lib64/python3.4/lib2to3/fixes/fix_tuple_params.pyis_docstring s r c @ s: e Z d Z d Z d Z d Z d d Z d d Z d S) FixTupleParams Ta
funcdef< 'def' any parameters< '(' args=any ')' >
['->' any] ':' suite=any+ >
|
lambda=
lambdef< 'lambda' args=vfpdef< '(' inner=any ')' >
':' body=any
>
c s6 d | k r j | | Sg | d } | d } | d j d j t j k ry d } | d j d j } t n! d } d } t j t j d d f d
d } | j t j
k r | | n` | j t j k r4xK t | j D]7 \ } } | j t j
k r | | d | d k q q Wn s>d Sx D] }
| d |
_
qEW| } | d k r~d
d _ n1 t | d j | r| d _ | d } n x D] }
| d |
_
qW | d j | |