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   