3
‡ŒðiÉ  ã               @   sB   d Z ddlmZ ddlmZmZmZmZmZ G dd„ dej	ƒZ
dS )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 Zd ZdZdd„ ZdS )ÚFixRaisezª
    raise_stmt< 'raise' (power< name=any [trailer< '(' val=any* ')' >]
        [trailer< '.' 'with_traceback' > trailer< '(' trc=any ')' >] > | any) ['from' chain=any] >c       	      C   sÄ   t  |jdƒ|jdƒ|jdƒ  }}}|jdƒ}|d k	rV| j|dƒ |jjƒ  |jƒ  |d k	rÀ|rj|d n
ttjdƒ}d |_|_ttjd	ƒ|j	ƒ t
ƒ |j	ƒ t
ƒ |j	ƒ g}ttj|ƒ}|j|ƒ d S )
NÚnameÚvalÚtrcÚchainz8explicit exception chaining is not supported in Python 2r   ÚNoneú Úraise)ZFIXMEÚgetÚwarningZprev_siblingÚremover   r   ÚNAMEÚprefixÚcloner   r   r   Ú
raise_stmtÚreplace)	ÚselfÚnodeÚresultsr	   r
   r   r   Zkidsr   © r   ú@/tmp/pip-build-6m2fasei/future/libpasteurize/fixes/fix_raise_.pyÚ	transform   s    "

zFixRaise.transformN)Ú__name__Ú
__module__Ú__qualname__ZPATTERNr   r   r   r   r   r      s   r   N)Ú__doc__Zlib2to3r   Zlib2to3.fixer_utilr   r   r   r   r   ZBaseFixr   r   r   r   r   Ú<module>
   s   