o
    [ªRhK  ã                   @   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 ur)|  |d¡ |j ¡  | ¡  |d ur`|r3|d nttjdƒ}d |_|_ttjd	ƒ| ¡ t	ƒ | ¡ t	ƒ | ¡ g}t
tj|ƒ}| |¡ d S d S )
NÚnameÚvalÚtrcÚchainz8explicit exception chaining is not supported in Python 2r   ÚNoneú Úraise)ÚgetÚwarningÚprev_siblingÚremover   r   ÚNAMEÚprefixÚcloner   r   r   Ú
raise_stmtÚreplace)	ÚselfÚnodeÚresultsr	   r
   r   r   Úkidsr   © r   ú_/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/libpasteurize/fixes/fix_raise.pyÚ	transform   s   "

ÿúzFixRaise.transformN)Ú__name__Ú
__module__Ú__qualname__ÚPATTERNr   r   r   r   r   r      s    r   N)Ú__doc__Úlib2to3r   Úlib2to3.fixer_utilr   r   r   r   r   ÚBaseFixr   r   r   r   r   Ú<module>   s    