Yf @ 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/python35/lib64/python3.5/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 s- 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 | | nZ | j t j k r.xE t | j D]4 \ } } | j t j
k r | | d | d k q W s8d Sx D] }
| d |
_
q?W| } | d k rxd
d _ n. t | d j | r| d _ | d } x D] }
| d |
_
qW | d j | |