a XC?h.�@sVddlmZddlmZddlmZddlmZmZmZm Z m Z Gdd�dej �Z dS)�)�pytree)�token)� fixer_base)�Name�Call�ArgList�Attr�is_tuplec@seZdZdZdZdd�ZdS)�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��}|jtjur.|�|d�dS|�d�}|durDdS|��}t|�rndd�|jdd�D�}n d|_ |g}|d }d |vr�|d ��}d|_ t ||�} t | t d ��t |g�g} |�t�|j| ��n|�t ||��dS) N�excz+Python 3 does not support string exceptions�valcSsg|] }|���qS�)�clone)�.0�cr r �)�z&FixThrow.transform..��������args�tb�with_traceback)�symsr�typer�STRINGZcannot_convert�getr Zchildren�prefixrrrr�replacerZNodeZpower) �selfZnodeZresultsrr r rZ throw_argsr�eZwith_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