a 97a,@sbdZddlmZmZddlmZddlmZmZm Z m Z m Z m Z ddl mZGdddejZdS) aFixer for 'raise E, V' From Armin Ronacher's ``python-modernize``. raise -> raise raise E -> raise E raise E, 5 -> raise E(5) raise E, 5, T -> raise E(5).with_traceback(T) raise E, None, T -> raise E.with_traceback(T) raise (((E, E'), E''), E'''), 5 -> raise E(5) raise "foo", V, T -> warns about string exceptions raise E, (V1, V2) -> raise E(V1, V2) raise E, (V1, V2), T -> raise E(V1, V2).with_traceback(T) CAVEATS: 1) "raise E, V, T" cannot be translated safely in general. If V is not a tuple or a (number, string, None) literal, then: raise E, V, T -> from future.utils import raise_ raise_(E, V, T) )pytree fixer_base)token)NameCallis_tupleCommaAttrArgList)touch_import_topc@seZdZdZdZddZdS)FixRaiseTzB raise_stmt< 'raise' exc=any [',' val=any [',' tb=any]] > c Cs|j}|d}|jtjkr2d}|||dSt|r^t|rX|jdjd}q:d|_d|vrt|d}nd}d|vr<|d}t|rdd |jdd D}t ||}n|jtj tjfvrd |_t ||g}n\|jtj kr|j d krnDt d d|d |_|t|g}|dur.|t|g7}t td|S|durhd |_t|tdt|gg} n|g} tj|jtdg| |jdS)Nexcz+Python 3 does not support string exceptionsr tbvalcSsg|] }|qS)clone).0crrv/private/var/folders/s6/9n5zrl012gv99k63s4q6ccsd4s6mqz/T/pip-target-f5cq3f2q/lib/python/libfuturize/fixes/fix_raise.py Iz&FixRaise.transform..Nonez future.utilsZraise_with_tracebackraise)prefix)symsrtyperSTRINGZcannot_convertrchildrenrrNUMBERNAMEvaluer rrr r rNodeZ raise_stmt) selfnoderesultsrr msgrrargsZexc_listrrr transform*sJ           zFixRaise.transformN)__name__ __module__ __qualname__Z BM_compatibleZPATTERNr,rrrrr #sr N)__doc__Zlib2to3rrZ lib2to3.pgen2rZlib2to3.fixer_utilrrrrr r Zlibfuturize.fixer_utilr ZBaseFixr rrrrs