<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3

  \                 @   s   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G dd dejZd	d
 Zdd Zg dfddZdd ZdS )   )pytree)token)
fixer_base)AssignNameNewlineNumber	Subscriptsymsc             C   s   t | tjo| jd jtjkS )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 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 ||S g |d }|d }|d jd jtjkrZd}|d jd j}t  nd}d}tjtjd d fd
d	}|jt	j
kr|| n@|jt	jkrx2t|jD ]$\}}	|	jt	j
kr||	|dkd qW sd S xD ]}
|d |
_qW |}|dkrdd _n&t|d j| r8|d _|d }xD ]}
|d |
_q>W |d j||< x4t|d |t d D ]}||d j| _qW |d j  d S )Nlambdasuiteargsr      r   z;  Fc                s\   t j }| j }d|_t||j }|r2d|_| j| jtjt	j
| j g d S )Nr    )r   new_namecloneprefixr   replaceappendr   r   r
   Zsimple_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   ZLeafr
   ZtfpdefZtypedargslist	enumerateparentr   r   rangelenZchanged)r'   noderesultsr   r   startindentr(   ir$   lineafterr   )r%   r&   r'   r   	transform.   sF    




 zFixTupleParams.transformc             C   s   |d }|d }t |d }|jtjkrD|j }d|_|j| d S t|}t|}| j	t
|}t|dd}	|j|	j  xd|j D ]X}
|
jtjkr|
j|krdd ||
j D }tjtj|	j g| }|
j|_|
j| qW d S )Nr   bodyinnerr   )r   c             S   s   g | ]}|j  qS 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
   Zpower)r'   r0   r1   r   r8   r9   ZparamsZto_indexZtup_nameZ	new_paramr#   Z
subscriptsnewr   r   r   r)   n   s(    
zFixTupleParams.transform_lambdaN)__name__
__module____qualname__Z	run_orderZBM_compatibleZPATTERNr7   r)   r   r   r   r   r      s
   
@r   c             C   sR   | j tjtjfkr| S | j tjkrBx| j tjkr<| jd } q$W | S td|  d S )Nr   zReceived unexpected node %s)r   r
   Zvfplistr   r>   vfpdefr   RuntimeError)r0   r   r   r   r=      s    r=   c             C   s<   | j tjkrt| jd S | j tjkr,| jS dd | jD S )Nr   c             S   s    g | ]}|j tjkrt|qS r   )r   r   COMMAr?   )r:   r;   r   r   r   r<      s    zfind_params.<locals>.<listcomp>)r   r
   rF   r?   r   r   r>   r+   )r0   r   r   r   r?      s
    r?   Nc             C   s^   |d kri }xLt | D ]@\}}ttt|g}t|trJt|||d q|| ||< qW |S )N)d)r,   r	   r   strr   listr@   )
param_listr   rI   r4   objZtrailerr   r   r   r@      s    
r@   c             C   s@   g }x0| D ](}t |tr(|jt| q
|j| q
W dj|S )N_)r   rK   r!   rA   join)rL   lrM   r   r   r   rA      s    

rA   )r   r   Zpgen2r   r   Z
fixer_utilr   r   r   r   r	   r
   r   ZBaseFixr   r=   r?   r@   rA   r   r   r   r   <module>   s    l