File: //usr/lib/python3/dist-packages/libpasteurize/fixes/__pycache__/fix_kwargs.cpython-38.pyc
U
,�]g � @ s� d Z ddlmZ ddlmZmZmZmZmZ ddl m
Z
mZmZ dZ
dZdZdZd d
� Zefdd�Zefd
d�ZG dd� dej�ZdS )zg
Fixer for Python 3 function parameter syntax
This fixer is rather sensitive to incorrect py3k syntax.
� )�
fixer_base)�token�String�Newline�Comma�Name)�indentation�suitify�
DoubleStarz=%(name)s = %(kwargs)s['%(name)s']; del %(kwargs)s['%(name)s']z'if '%(name)s' in %(kwargs)s: %(assign)szelse: %(name)s = %(default)sZ_3to2kwargsc c s� | d j tjkrt| �dks t�d}t| �}||k r�| | }|j}|j tjkrX|d7 }q,|dk rn|j tjkrnq�|j}|j }|dk r�|j tj
kr�|j }|d7 }nd}||fV |d7 }q,dS )z�
Generator that yields tuples of (name, default_value) for each parameter in the list
If no default is given, then it is default_value is None (not Leaf(token.NAME, 'None'))
r � � N)�typer �STAR�len�AssertionErrorZprev_sibling�NAME�
DOUBLESTAR�valueZnext_sibling�EQUAL)�
raw_paramsZcurr_idxZmax_idxZ curr_itemZ prev_item�nameZnxt�
default_value� r �@/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_kwargs.py�
gen_params s&