File: //opt/alt/python27/lib64/python2.7/lib2to3/fixes/fix_apply.pyc
�
T~gc           @   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   s�  |  j  } | s t � | d } | d } | j d � } | r� | j |  j  j k rW d  S| j |  j  j k r� | j d j d k r� d  Sn  | r� | j |  j  j k r� | j d j d k r� d  S| 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	 rj| j	 �  } d | _ n  t j t
 j d � | g } | d  k	 r�| j t �  t j t
 j d	 � | g � d
 | d _ n  t | | d | �S(   Nt   funct   argst   kwdsi    s   **i����t    u   *u   **u    t   prefix(   t   symst   AssertionErrort   gett   typet	   star_exprt   argumentt   childrent   valueR   t   cloneR   t   NAMEt   atomt   powert
   DOUBLESTARR   t   NoneR    t   Leaft   STARt   extendR   R   (	   t   selft   nodet   resultsR   R   R   R	   R   t	   l_newargs(    (    s<