HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/libpasteurize/fixes/__pycache__/fix_kwargs.cpython-38.pyc
U

,�]g�@s�dZddlmZddlmZmZmZmZmZddl	m
Z
mZmZdZ
dZdZdZd	d
�Zefdd�Zefd
d�ZGdd�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_3to2kwargsccs�|djtjkrt|�dks t�d}t|�}||kr�||}|j}|jtjkrX|d7}q,|dk	rn|jtjkrnq�|j}|j	}|dk	r�|jtj
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�AssertionErrorZprev_sibling�NAME�
DOUBLESTAR�valueZnext_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_paramss& 

rcCs�|djtjkst�|djtjkrJ|d��|d��|dd�}n|dd�}|D] }|jtjkrt|��qZdSqZdS)z�
    Removes all keyword-only args from the params list and a bare star, if any.
    Does not add the kwargs dict if needed.
    Returns True if more action is needed, False if not
    (more action is needed if no kwargs dict exists)
    rrrN�FT)r
rrr�COMMA�remover)r�kwargs_defaultZ	kw_paramsZparamrrr�
remove_params+s
rcCs~d}d}|dd�D]\}|jtjkr(qq|jtjkr>|s>d}q|jtjkr`|r`|rX|jndS|jtjkrd}q|rz|SdS)z�
    Returns string with the name of the kwargs dict if the params after the first star need fixing
    Otherwise returns empty string
    FrNT�)r
rrrrr)rrZfound_kwargsZ	needs_fix�trrr�needs_fixingAsr"c@seZdZdZdZdd�ZdS)�	FixKwargs�z^funcdef< 'def' NAME parameters< '(' arglist=typedargslist< params=any* > ')' > ':' suite=any >c
Cs�|d}t|�D]$\}}|jtjkr||d�}q:qdSt|�}|sJdSt|�|jd}|jd}t|�}	t|�D]�\}
}|dkr�|�	dt
��|�	dtt|
|d�|	d��qv|�	dt
��|�	dtt
|
|d�|	d��|�	dt
��|�	dttt|
|d�|
|d�|	d��qv|	|_d|jd_t|�}|�r�|d	}
t|
j�d
k�rr|
jdjtjk�rr|
�t��|
�tdd��|
�t|��dS)
NZparams�r)r�kwargs)�prefix)r�default)Zassignrr&r �arglistr���� )�	enumerater
rrr"r	ZchildrenrrZinsert_childrr�_assign_template�_else_template�_if_templater'rrrZappend_childrr
r)�selfZnodeZresultsZparams_rawlist�i�itemZ
new_kwargsZsuiteZ
first_stmtZidentrrZmust_add_kwargsr)rrr�	transform`s<

 ,$zFixKwargs.transformN)�__name__�
__module__�__qualname__Z	run_orderZPATTERNr3rrrrr#Zsr#N)�__doc__Zlib2to3rZlib2to3.fixer_utilrrrrrZlibfuturize.fixer_utilrr	r
r-r/r.Z_kwargs_default_namerrr"ZBaseFixr#rrrr�<module>s