ðÕ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 } | 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 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 r"t | ƒ } d | _ | j ƒ } d | _ | d k ra| 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ÚAssertionErrorÚgetÚtypeZ star_exprZargumentZchildrenÚvaluer Zcloner ÚNAMEZatomZpowerÚ
DOUBLESTARr r ZLeafÚSTARÚextendr r ) ÚselfZnodeZresultsr r r
r r Z l_newargs© r ú