B 0c.@sVddlmZddlmZddlmZddlmZmZmZm Z m Z Gdddej Z dS))pytree)token) fixer_base)NameCallArgListAttris_tuplec@seZdZdZdZddZdS)FixThrowTz power< any trailer< '.' 'throw' > trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' > > | power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > > c Cs|j}|d}|jtjkr.||ddS|d}|dkrDdS|}t|rndd|jddD}n d|_ |g}|d }d |kr|d }d|_ t ||} t | t d t |gg} |t|j| n|t ||dS) Nexcz+Python 3 does not support string exceptionsvalcSsg|] }|qS)clone).0cr r )sz&FixThrow.transform..argstbwith_traceback)symsrtyperSTRINGZcannot_convertgetr ZchildrenprefixrrrrreplacerZNodeZpower) selfZnoderesultsrr r rZ throw_argsreZwith_tbr r r transforms*      zFixThrow.transformN)__name__ __module__ __qualname__Z BM_compatibleZPATTERNr"r r r rr sr N) rrZpgen2rrZ fixer_utilrrrrr ZBaseFixr r r r r s