a DOg* @sRdZddlmZddlmZddlmZddlmZmZm Z Gdddej Z dS) zIFixer for apply(). This converts apply(func, v, k) into (func)(*v, **k).)pytree)token) fixer_base)CallComma parenthesizec@seZdZdZdZddZdS)FixApplyTa. power< 'apply' trailer< '(' arglist< (not argument ')' > > c Cs4|j}|sJ|d}|d}|d}|rN|j|jjkrN|jdjdvrNdS|rt|j|jjkrt|jdjdkrtdS|j}|}|jtj |j fvr|j|j ks|jdjtj krt |}d|_|}d|_|dur|}d|_ttjd |g}|dur&|tttj d|gd |d_t|||d S) Nfuncargskwds>***rr  )prefix)symsgettypeZargumentZchildrenvaluerZclonerNAMEZatomZpower DOUBLESTARrrZLeafSTARextendrr) selfZnodeZresultsrr r r rZ l_newargsrs