U
    hK                     @   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)' -> '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   | d| d| d  }}}| d}|d k	rR| |d |j  |  |d k	r|rf|d n
ttjd}d |_|_ttjd	| t	 | t	 | g}t
tj|}|| d S )
Nnamevaltrcchainz8explicit exception chaining is not supported in Python 2r   None raise)getwarningZprev_siblingremover   r   NAMEprefixcloner   r   r   
raise_stmtreplace)	selfnoderesultsr	   r
   r   r   Zkidsr    r   O/var/www/html/venv/lib/python3.8/site-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   