JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrў f c@sdZddlmZddlmZddlmZddlmZmZm Z m Z m Z m Z ddZ Gdd d ejZd S( uFixer 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(upytree(utoken(u fixer_base(uAssignuAttruNameuis_tupleuis_listusymsccsbx[t|D]M\}}|jtjkr |jdjdkrZ|||dfVqZq q WdS(Niuexcepti(u enumerateutypeusymsu except_clauseuchildrenuvalue(unodesuiun((u=/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_except.pyu find_exceptssu find_exceptscBs,|EeZdZdZdZddZdS(u FixExceptu1 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}dd|dD}dd|dD}xt|D]\}}t|jdkrD|jdd\}} } | jtdd d | jtjkrt|j d d } | j } d | _ | j| | j } |j} x0t | D]"\}}t |tjrPqqWt| sFt| rgt| t| td }nt| | }x.t| d|D]}|jd |qW|j||q| j d krd | _ qqDqDWdd|jddD||}tj|j|S(NcSsg|]}|jqS((uclone(u.0un((u=/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_except.pyu 2s u'FixExcept.transform..utailcSsg|]}|jqS((uclone(u.0uch((u=/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_except.pyu 4s ucleanupiiuasuprefixu uuargsicSsg|]}|jqS((uclone(u.0uc((u=/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_except.pyu \s i(usymsu find_exceptsulenuchildrenureplaceuNameutypeutokenuNAMEunew_nameucloneuprefixu enumerateu isinstanceupytreeuNodeuis_tupleuis_listuAssignuAttrureversedu insert_child(uselfunodeuresultsusymsutailu try_cleanupu except_clauseue_suiteuEucommauNunew_Nutargetu suite_stmtsuiustmtuassignuchilduchildren((u=/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_except.pyu transform/s6      !(uFixExcept.transformNT(u__name__u __module__u __qualname__uTrueu BM_compatibleuPATTERNu transform(u __locals__((u=/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_except.pyu FixExcept$su FixExceptN(u__doc__uupytreeupgen2utokenu fixer_baseu fixer_utiluAssignuAttruNameuis_tupleuis_listusymsu find_exceptsuBaseFixu FixExcept(((u=/opt/alt/python33/lib64/python3.3/lib2to3/fixes/fix_except.pyus .