Repository URL to install this package:
|
Version:
2.2.7 ▾
|
ó
ÂgWc @ s d Z d d l m Z d d l m Z d d l m Z d d l m Z m Z m Z m
Z
m Z m Z d Z
d e j f d YZ d S(
sª 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
i ( t pytree( t token( t
fixer_base( t Assignt Attrt Namet is_tuplet is_listt symsc c sb x[ t | D]M \ } } | j t j k r
| j d j d k rZ | | | d f VqZ q
q
Wd S( Ni u excepti ( t enumeratet typeR t
except_clauset childrent value( t nodest it n( ( s ./lib2to3/fixes/fix_except.pyt find_excepts s t FixExceptc B s e Z e Z d Z d Z RS( s1
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 C s, | j } g | d D] } | j ^ q } g | d D] } | j ^ q7 } xt | D]\ } } t | j d k r\ | j d d !\ }
} } | j t d d d | j t j k rÉt | j
d d }
| j } d | _ | j |
|
j }
| j } x0 t | D]" \ } } t
| t j rPqqWt | s[t | r|t | t |
t d } n t | |
} x( t | | D] } | j d
| qW| j | | qç| j d k rçd | _ qçq\ q\ Wg | j d D] } | j ^ qù| | } t j | j | S( Nt tailt cleanupi i u ast prefixu u u argsi i ( R t cloneR t lenR t replaceR R
R t NAMEt new_nameR R t
isinstanceR t NodeR R R R t reversedt insert_child( t selft nodet resultsR R R t cht try_cleanupR t e_suitet Et commat Nt new_Nt targett suite_stmtsR t stmtt assignt childt cR ( ( s ./lib2to3/fixes/fix_except.pyt transform/ s6 ##
!.( t __name__t
__module__t Truet
BM_compatiblet PATTERNR/ ( ( ( s ./lib2to3/fixes/fix_except.pyR $ s N( t __doc__t R t pgen2R R t
fixer_utilR R R R R R R t BaseFixR ( ( ( s ./lib2to3/fixes/fix_except.pyt <module> s .