Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/libpasteurize/fixes/__pycache__/ |
Upload File : |
o ,�]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)s�_3to2kwargsc c s� � | d j tjkrt| �dksJ �d}t| �}||k rb| | }|j}|j tjkr-|d7 }q|dur9|j tjkr9dS |j}|j}|durQ|j tj krQ|j}|d7 }nd}||fV |d7 }||k sdS 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�prev_sibling�NAME� DOUBLESTAR�value�next_sibling�EQUAL)� raw_params�curr_idx�max_idx� curr_item� prev_item�name�nxt� default_value� r �@/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_kwargs.py� gen_params s* � �r! c C s~ | d j tjks J �| d j tjkr%| d �� | d �� | dd� }n| dd� }|D ]}|j tjkr:|�� q- dS dS )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) r r r N� FT)r r r �COMMA�remover )r �kwargs_default� kw_params�paramr r r � remove_params+ s r( c C s� d}d}| dd� D ]/}|j tjkrq |j tjkr|sd}q |j tjkr1|r1|r-|j S d S |j tjkr9d}q |r>|S dS )z� Returns string with the name of the kwargs dict if the params after the first star need fixing Otherwise returns empty string Fr NT� )r r r# r r r )r r% �found_kwargs� needs_fix�tr r r �needs_fixingA s �r- c @ s e Zd ZdZdZdd� ZdS )� FixKwargs� z^funcdef< 'def' NAME parameters< '(' arglist=typedargslist< params=any* > ')' > ':' suite=any >c C s� |d }t |�D ]\}}|jtjkr||d � } nqd S t|�}|s%d S t|� |jd }|jd }t|�} t|�D ]Q\} }|d u rZ|� dt � � |� dtt| |d� | d�� q;|� dt � � |� dtt | |d� | d�� |� dt � � |� dttt| |d� | |d� | d�� q;| |_d|jd _t|�}|r�|d } t| j�d kr�| jd jtjkr�| �t� � | �tdd�� | �t|�� d S d S ) N�params� r )r �kwargs)�prefix)r �default)�assignr r2 r) �arglistr ���� )� enumerater r r r- r �childrenr r! �insert_childr r �_assign_template�_else_template�_if_templater3 r( r r# �append_childr r r )�self�node�results�params_rawlist�i�item� new_kwargs�suite� first_stmt�identr r �must_add_kwargsr6 r r r � transform` s@ � , �zFixKwargs.transformN)�__name__� __module__�__qualname__� run_order�PATTERNrK r r r r r. Z s r. N)�__doc__�lib2to3r �lib2to3.fixer_utilr r r r r �libfuturize.fixer_utilr r r r<