HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/libfuturize/fixes/__pycache__/fix_raise.cpython-310.pyc
o

,�],�@sbdZddlmZmZddlmZddlmZmZm	Z	m
Z
mZmZddl
mZGdd�dej�ZdS)	a�Fixer for 'raise E, V'

From Armin Ronacher's ``python-modernize``.

raise         -> raise
raise E       -> raise E
raise E, 5    -> raise E(5)
raise E, 5, T -> raise E(5).with_traceback(T)
raise E, None, T -> raise E.with_traceback(T)

raise (((E, E'), E''), E'''), 5 -> raise E(5)
raise "foo", V, T               -> warns about string exceptions

raise E, (V1, V2) -> raise E(V1, V2)
raise E, (V1, V2), T -> raise E(V1, V2).with_traceback(T)


CAVEATS:
1) "raise E, V, T" cannot be translated safely in general. If V
   is not a tuple or a (number, string, None) literal, then:

   raise E, V, T -> from future.utils import raise_
                    raise_(E, V, T)
�)�pytree�
fixer_base)�token)�Name�Call�is_tuple�Comma�Attr�ArgList)�touch_import_topc@seZdZdZdZdd�ZdS)�FixRaiseTzB
    raise_stmt< 'raise' exc=any [',' val=any [',' tb=any]] >
    c
Cs�|j}|d��}|jtjkrd}|�||�dSt|�r2t|�r/|jdjd��}t|�s!d|_d|vr=|d��}nd}d|vr�|d��}t|�r_dd	�|jdd
�D�}t	||�}n@|jtj
tjfvrrd|_t	||g�}n-|jtjkr~|jdkr~n!t
d
d|�d|_|t�|g}|dur�|t�|g7}t	td�|�S|dur�d|_t|td��t|g�g}	n|g}	tj|jtd�g|	|jd�S)N�excz+Python 3 does not support string exceptions�r� �tb�valcSsg|]}|���qS�)�clone)�.0�crr�=/usr/lib/python3/dist-packages/libfuturize/fixes/fix_raise.py�
<listcomp>Isz&FixRaise.transform.<locals>.<listcomp>�����Nonezfuture.utils�raise_�with_traceback�raise)�prefix)�symsr�typer�STRING�cannot_convertr�childrenrr�NUMBER�NAME�valuerrrr	r
r�Node�
raise_stmt)
�self�node�resultsrr
�msgrr�args�exc_listrrr�	transform*sL�	�zFixRaise.transformN)�__name__�
__module__�__qualname__�
BM_compatible�PATTERNr/rrrrr#srN)�__doc__�lib2to3rr�
lib2to3.pgen2r�lib2to3.fixer_utilrrrrr	r
�libfuturize.fixer_utilr�BaseFixrrrrr�<module>s