B
    v9a~	                 @   sN   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 )   )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   s>  | j }|d }|d }|d}|rX|j| j jkr6d S |j| j jkrX|jd jdkrXd S |r~|j| j jkr~|jd jdkr~d S |j}| }|jt	j
|jfkr|j|jks|jd jt	jkrt|}d|_| }d|_|d k	r| }d|_tt	jd|g}|d k	r0|t tt	jd|g d	|d _t|||d
S )Nfuncargskwds    z** * )prefix)symsgettypeZ	star_exprargumentZchildrenvaluer   Zcloner   NAMEZatomZpower
DOUBLESTARr   r   ZLeafSTARextendr   r   )	selfZnoderesultsr   r	   r
   r   r   Z	l_newargs r   /usr/lib/python3.7/fix_apply.py	transform   s@    


zFixApply.transformN)__name__
__module____qualname__ZBM_compatibleZPATTERNr   r   r   r   r   r      s   r   N)r   r   Zpgen2r   r   Z
fixer_utilr   r   r   ZBaseFixr   r   r   r   r   <module>	   s   