HEX
Server: nginx/1.24.0
System: Linux localhost 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64
User: www (1000)
PHP: 8.3.27
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //lib/python3.10/lib2to3/fixes/__pycache__/fix_raise.cpython-310.pyc
o

��bcn�@sZdZddlmZddlmZddlmZddlmZmZm	Z	m
Z
mZGdd�dej�Z
dS)	a[Fixer for 'raise E, V, T'

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

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


CAVEATS:
1) "raise E, V" will be incorrectly translated if V is an exception
   instance. The correct Python 3 idiom is

        raise E from V

   but since we can't detect instance-hood by syntax alone and since
   any client code would have to be changed as well, we don't automate
   this.
�)�pytree)�token)�
fixer_base)�Name�Call�Attr�ArgList�is_tuplec@seZdZdZdZdd�ZdS)�FixRaiseTzB
    raise_stmt< 'raise' exc=any [',' val=any [',' tb=any]] >
    cCsf|j}|d��}|jtjkrd}|�||�dSt|�r2t|�r/|jdjd��}t|�s!d|_d|vrGt	�
|jtd�|g�}|j|_|S|d��}t|�r^dd	�|jdd
�D�}nd|_|g}d|vr�|d��}	d|	_|}
|jtj
ks~|jd
kr�t||�}
t|
td��t|	g�g}t	�
|jtd�g|�}|j|_|St	j
|jtd�t||�g|jd�S)N�excz+Python 3 does not support string exceptions��� �val�raisecSsg|]}|���qS�)�clone)�.0�crr�./usr/lib/python3.10/lib2to3/fixes/fix_raise.py�
<listcomp>Dsz&FixRaise.transform.<locals>.<listcomp>�����tb�None�with_traceback)�prefix)�symsr�typer�STRING�cannot_convertr	�childrenrr�Node�
raise_stmtr�NAME�valuerrr�simple_stmt)�self�node�resultsrr�msg�newr�argsr�e�with_tbrrr�	transform&sD�
�zFixRaise.transformN)�__name__�
__module__�__qualname__�
BM_compatible�PATTERNr/rrrrr
sr
N)�__doc__rr�pgen2rr�
fixer_utilrrrrr	�BaseFixr
rrrr�<module>s