o
    bc*	                     @   sR   d Z ddlmZ ddlmZ ddlmZ ddlmZmZm	Z	 G dd dej
ZdS )	zIFixer for apply().

This converts apply(func, v, k) into (func)(*v, **k).   )pytree)token)
fixer_base)CallCommaparenthesizec                   @   s   e Zd ZdZdZdd ZdS )FixApplyTa.  
    power< 'apply'
        trailer<
            '('
            arglist<
                (not argument<NAME '=' any>) func=any ','
                (not argument<NAME '=' any>) args=any [','
                (not argument<NAME '=' any>) kwds=any] [',']
            >
            ')'
        >
    >
    c           	      C   s2  | j }|sJ |d }|d }|d}|r'|j| j jkr'|jd jdv r'd S |r:|j| j jkr:|jd jdkr:d S |j}| }|jtj	|j
fvr]|j|jksY|jd jtjkr]t|}d|_| }d|_|d urr| }d|_ttjd	|g}|d ur|t ttjd|g d
|d _t|||dS )Nfuncargskwds    >   ***r    r    )prefix)symsgettypeargumentchildrenvaluer   cloner   NAMEatompower
DOUBLESTARr   r   LeafSTARextendr   r   )	selfnoderesultsr   r	   r
   r   r   	l_newargs r%   ./usr/lib/python3.10/lib2to3/fixes/fix_apply.py	transform   s@   

zFixApply.transformN)__name__
__module____qualname__BM_compatiblePATTERNr'   r%   r%   r%   r&   r      s    r   N)__doc__r   r   pgen2r   r   
fixer_utilr   r   r   BaseFixr   r%   r%   r%   r&   <module>   s   