ðÕYf~ ã @ 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) func=any ','
(not argument) args=any [','
(not argument) kwds=any] [',']
>
')'
>
>
c C sÄ | j } | d } | d } | j d ƒ } | rz | j | j j k rK d S| j | j j k rz | j d j d k rz d S| 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 rt | ƒ } d | _ | j ƒ } d | _ | d k rU| 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Úkwdsé z**r Ú Ú*ú Úprefixéþÿÿÿr )ÚsymsÚgetÚtypeZ star_exprZargumentZchildrenÚvaluer Zcloner ÚNAMEZatomZpowerÚ
DOUBLESTARr r ZLeafÚSTARÚextendr r ) ÚselfZnodeZresultsr r r
r r Z l_newargs© r ú