B
    18\~	                 @   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   sF  | j }|st|d }|d }|d}|r`|j| j jkr>d S |j| j jkr`|jd jdkr`d S |r|j| j jkr|jd jdkrd 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	r8|t tt
jd|g d	|d _t|||d
S )Nfuncargskwds    z** * )prefix)symsAssertionErrorgettype	star_exprargumentchildrenvaluer   cloner   NAMEatompower
DOUBLESTARr   r   LeafSTARextendr   r   )	selfnoderesultsr   r	   r
   r   r   Z	l_newargs r%   [/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/lib2to3/fixes/fix_apply.py	transform   sB    


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
   