python (3.12.0)
̑e
| d Z ddlmZ ddlmZ ddlmZ ddlmZmZm Z m
Z
mZmZ d Z
G d dej Zy )
a Fixer for except statements with named exceptions.
The following cases will be converted:
- "except E, T:" where T is a name:
except E as T:
- "except E, T:" where T is not a name, tuple or list:
except E as t:
T = t
This is done because the target of an "except" clause must be a
name.
- "except E, T:" where T is a tuple or list literal:
except E as t:
T = t.args
)pytree)token)
fixer_base)AssignAttrNameis_tupleis_listsymsc # K t | D ]L \ }}|j t j k( s$|j d j
dk( sA|| |dz f N y w)N exceptr ) enumeratetyper
except_clausechildrenvalue)nodesins L/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/lib2to3/fixes/fix_except.pyfind_exceptsr sX % &166T'''zz!}""h.%!*o%&s /AAAc e Zd ZdZdZd Zy) FixExceptTa1
try_stmt< 'try' ':' (simple_stmt | suite)
cleanup=(except_clause ':' (simple_stmt | suite))+
tail=(['except' ':' (simple_stmt | suite)]
['else' ':' (simple_stmt | suite)]
['finally' ':' (simple_stmt | suite)]) >
c
| j }|d D cg c] }|j }}|d D cg c] }|j }}t | D ] \ }} t |j dk( s |j dd \ }
}}|j t
dd |j t j k7 r t
| j d }
|j }d|_ |j |
|
j }
| j }t | D ]! \ }}t |t j s! n t! | st# | r t% |t'