Edit File: fix_tuple_params.cpython-36.pyc
3 � \�������������������@���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����6/usr/lib64/python3.6/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�j�||�S�g��|d�}|d�}|d�jd�jtjkrZd}|d�jd�j}t����nd}d}tjtjd���d����fd d� }|jt j kr�||��n@|jt jkr�x2t|j�D�]$\}} | jt j kr�|| |dkd��q�W��s�d�S�x�D�]} |d�| _ q�W�|}|dk�rd �d�_n&t|d�j|���r8|�d�_|d�}x�D�]} |d�| _ �q>W��|d�j||�<�x4t|d�|t���d��D�]}||d�j|�_�q�W�|d�j���d�S�)N�lambda�suite�argsr�������r���z; ��Fc����������������s\���t��j���}|�j��}d|_t||j���}|r2d|_|�j|���jtjt j |��j��g���d�S�)Nr���� )r����new_name�clone�prefixr����replace�appendr���r ���r ���Zsimple_stmt)Z tuple_arg� add_prefix�n�argr���)�end� new_lines�selfr���r����handle_tupleC���s���� z.FixTupleParams.transform.<locals>.handle_tuple)r"���r���)F)�transform_lambdar���r���r����INDENT�valuer���r���ZLeafr ���ZtfpdefZ typedargslist� enumerate�parentr���r����range�lenZchanged)r'����node�resultsr���r����start�indentr(����ir$����line�afterr���)r%���r&���r'���r���� transform.���sF���� zFixTupleParams.transformc������� ������C���s����|d�}|d�}t�|d��}|jtjkrD|j��}d|_|j|��d�S�t|�}t|�}|�j t |��}t|dd�} |j| j����xd|j��D�]X} | jtjkr�| j |kr�dd��|| j �D��}tjtj| j��g|��}| j|_| j|��q�W�d�S�)Nr����body�innerr���)r���c�������������S���s���g�|�]}|j����qS�r���)r���)�.0�cr���r���r���� <listcomp>����s����z3FixTupleParams.transform_lambda.<locals>.<listcomp>)� simplify_argsr���r����NAMEr���r���r ����find_params�map_to_indexr���� tuple_namer���Z post_orderr+���r���r ���r ���Zpower) r'���r0���r1���r���r8���r9���ZparamsZto_indexZtup_nameZ new_paramr#���Z subscripts�newr���r���r���r)���n���s(���� zFixTupleParams.transform_lambdaN)�__name__� __module__�__qualname__Z run_orderZ BM_compatibleZPATTERNr7���r)���r���r���r���r���r������s ��� @r���c�������������C���sR���|�j�tjtjfkr|�S�|�j�tjkrBx|�j�tjkr<|�jd�}�q$W�|�S�td|����d�S�)Nr���zReceived unexpected node %s)r���r ���Zvfplistr���r>����vfpdefr����RuntimeError)r0���r���r���r���r=�������s����r=���c�������������C���s<���|�j�tjkrt|�jd��S�|�j�tjkr,|�jS�dd��|�jD��S�)Nr���c�������������S���s ���g�|�]}|j�tjkrt|��qS�r���)r���r����COMMAr?���)r:���r;���r���r���r���r<�������s����zfind_params.<locals>.<listcomp>)r���r ���rF���r?���r���r���r>���r+���)r0���r���r���r���r?�������s ����r?���Nc�������������C���s^���|d�kri�}xLt�|��D�]@\}}ttt|���g}t|t�rJt|||d��q||�||<�qW�|S�)N)�d)r,���r ���r����strr����listr@���)� param_listr���rI���r4����objZtrailerr���r���r���r@�������s���� r@���c�������������C���s@���g�}x0|�D�](}t�|t�r(|jt|���q |j|��q W�dj|�S�)N�_)r���rK���r!���rA����join)rL����lrM���r���r���r���rA�������s���� rA���)�__doc__r���r���Zpgen2r���r���Z fixer_utilr���r���r���r���r ���r ���r���ZBaseFixr���r=���r?���r@���rA���r���r���r���r����<module>���s��� l