3
+��h� � @ sB d Z ddlmZ ddlmZmZmZmZmZ G dd� dej �Z
dS )z�Fixer for
raise E(V).with_traceback(T)
to:
from future.utils import raise_
...
raise_(E, V, T)
TODO: FIXME!!
� )�
fixer_base)�Comma�Node�Leaf�token�symsc @ s e Zd ZdZdd� ZdS )�FixRaisez�
raise_stmt< 'raise' (power< name=any [trailer< '(' val=any* ')' >]
[trailer< '.' 'with_traceback' > trailer< '(' trc=any ')' >] > | any) ['from' chain=any] >c C s� t |jd�|jd�|jd� }}}|jd�}|d k rV| j|d� |jj� |j� |d k r�|rj|d n
ttjd�}d |_|_ttjd �|j � t
� |j � t
� |j � g}ttj
|�}|j|� d S )
N�name�val�trc�chainz8explicit exception chaining is not supported in Python 2r �None� �raise)ZFIXME�get�warningZprev_sibling�remover r �NAME�prefix�cloner r r �
raise_stmt�replace) �self�node�resultsr r
r r Zkidsr � r �E/root/tmp/pip-build-yeh9mt8d/future/libpasteurize/fixes/fix_raise_.py� transform s "
zFixRaise.transformN)�__name__�
__module__�__qualname__ZPATTERNr r r r r r s r N)�__doc__Zlib2to3r Zlib2to3.fixer_utilr r r r r ZBaseFixr r r r r �<module>
s |