Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/lib2to3/fixes/
Upload File :
Current File : //usr/lib/python2.7/lib2to3/fixes/fix_except.pyc

ó
—|_c@sŠdZddlmZddlmZddlmZddlmZmZm	Z	m
Z
mZmZd„Z
dejfd„ƒYZd	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(tpytree(ttoken(t
fixer_base(tAssigntAttrtNametis_tupletis_listtsymsccsbx[t|ƒD]M\}}|jtjkr
|jdjdkrZ|||dfVqZq
q
WdS(Niuexcepti(t	enumeratettypeRt
except_clausetchildrentvalue(tnodestitn((s./usr/lib/python2.7/lib2to3/fixes/fix_except.pytfind_exceptsst	FixExceptcBseZeZdZd„ZRS(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)]) >
    cCs,|j}g|dD]}|jƒ^q}g|dD]}|jƒ^q7}x™t|ƒD]‹\}}	t|jƒdkr\|jdd!\}
}}|jtdddƒƒ|jtj	krÉt|j
ƒddƒ}
|jƒ}d|_|j|
ƒ|
jƒ}
|	j}x0t|ƒD]"\}}t
|tjƒrPqqWt|ƒs[t|ƒr|t|t|
td	ƒƒƒ}nt||
ƒ}x(t|| ƒD]}|	jd
|ƒqœW|	j||ƒqç|jdkrçd|_qçq\q\Wg|jd D]}|jƒ^qù||}tj|j|ƒS(Nttailtcleanupiiuastprefixu uuargsii(RtcloneRtlenRtreplaceRR
RtNAMEtnew_nameRR	t
isinstanceRtNodeRRRRtreversedtinsert_child(tselftnodetresultsRRRtchttry_cleanupRte_suitetEtcommatNtnew_Nttargettsuite_stmtsRtstmttassigntchildtcR((s./usr/lib/python2.7/lib2to3/fixes/fix_except.pyt	transform/s6	##	
	!.(t__name__t
__module__tTruet
BM_compatibletPATTERNR/(((s./usr/lib/python2.7/lib2to3/fixes/fix_except.pyR$sN(t__doc__tRtpgen2RRt
fixer_utilRRRRRRRtBaseFixR(((s./usr/lib/python2.7/lib2to3/fixes/fix_except.pyt<module>s.