
c'oTK                 @   s[   d  Z  d d l m Z d d l m Z m Z m Z m Z m Z Gd d   d e j	  Z
 d S)z;Fixer for 'raise E(V).with_traceback(T)' -> 'raise E, V, T'    )
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  | j  d  | j  d  | j  d  } } } | j  d  } | d  k	 rq |  j | d  | j j   | j   | d  k	 r
| r | 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)getZwarningZprev_siblingremover   r   NAMEprefixZcloner   r   r   
raise_stmtreplace)	selfZnodeZresultsr	   r
   r   r   Zkidsr    r   ?/usr/lib/python3/dist-packages/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   (