
-c`m  ã               @   so   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	 Gd 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   sM  |  j  } | s t ‚ | d } | d } | j d ƒ } | j } | j ƒ  } | j t j | j f k rŸ | j | j	 k s“ | j
 d
 j t j k rŸ t | ƒ } d | _ | j ƒ  } d | _ | d  k	 rÞ | j ƒ  } d | _ t j t j d ƒ | g } | d  k	 r:| j t ƒ  t j t j d ƒ | g ƒ d | d _ t | | d	 | ƒS)NÚfuncÚargsÚkwdsr   Ú Ú*z**ú Úprefixéþÿÿÿr   )ÚsymsÚAssertionErrorÚgetr   ZcloneÚtyper   ÚNAMEZatomZpowerZchildrenÚ
DOUBLESTARr   r   ZLeafÚSTARÚextendr   r   )	ÚselfZnodeZresultsr   r	   r
   r   r   Z	l_newargs© r   ú-/usr/lib/python3.5/lib2to3/fixes/fix_apply.pyÚ	transform   s0    	

				
zFixApply.transformN)Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleZPATTERNr   r   r   r   r   r      s   r   N)Ú__doc__r   r   Zpgen2r   r   Z
fixer_utilr   r   r   ZBaseFixr   r   r   r   r   Ú<module>   s
   