ó
8Ţ	Pc           @   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	 d e j
 f d     YZ d S(	   sI   Fixer for apply().

This converts apply(func, v, k) into (func)(*v, **k).i   (   t   pytree(   t   token(   t
   fixer_base(   t   Callt   Commat   parenthesizet   FixApplyc           B   s   e  Z e Z d  Z d   Z RS(   s.  
    power< 'apply'
        trailer<
            '('
            arglist<
                (not argument<NAME '=' any>) func=any ','
                (not argument<NAME '=' any>) args=any [','
                (not argument<NAME '=' any>) kwds=any] [',']
            >
            ')'
        >
    >
    c   	      C   sV  |  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 |  } n  d | _ | j   } d | _ | d  k	 rä | j   } d | _ n  t j t j d  | g } | d  k	 rC| j t   t j t j d  | g  d | d _ n  t | | d	 | S(
   Nt   funct   argst   kwdsiţ˙˙˙t    u   *u   **u    t   prefix(   t   symst   AssertionErrort   getR   t   clonet   typeR   t   NAMEt   atomt   powert   childrent
   DOUBLESTARR   t   NoneR    t   Leaft   STARt   extendR   R   (	   t   selft   nodet   resultsR   R   R   R	   R   t	   l_newargs(    (    s-   /usr/lib/python2.7/lib2to3/fixes/fix_apply.pyt	   transform   s0    	

			
(   t   __name__t
   __module__t   Truet   BM_compatiblet   PATTERNR   (    (    (    s-   /usr/lib/python2.7/lib2to3/fixes/fix_apply.pyR      s   N(   t   __doc__R
   R    t   pgen2R   R   t
   fixer_utilR   R   R   t   BaseFixR   (    (    (    s-   /usr/lib/python2.7/lib2to3/fixes/fix_apply.pyt   <module>   s
   