\d `dZddlmZddlmZmZmZmZmZm Z m Z Gddej Z dS)zFixer for sys.exc_{type, value, traceback} sys.exc_type -> sys.exc_info()[0] sys.exc_value -> sys.exc_info()[1] sys.exc_traceback -> sys.exc_info()[2] ) fixer_base)AttrCallNameNumber SubscriptNodesymscdeZdZgdZdZdddeDzZdZdS) FixSysExc)exc_type exc_value exc_tracebackTzN power< 'sys' trailer< dot='.' attribute=(%s) > > |c# K|] }d|zV dS)z'%s'N).0es *..\python\lib\lib2to3\fixes\fix_sys_exc.py zFixSysExc.s&::AVaZ::::::c|dd}t|j|j}t t d|j}tt d|}|dj|djd_| t|ttj ||jS)N attributeexc_info)prefixsysdot)rrindexvaluerrrrchildrenappendrr r power)selfnoderesultssys_attrr callattrs r transformzFixSysExc.transforms;'*t}**8>::;;D$$X_===DKK&&%,U^%:Q" Ie$$%%%DJT[9999rN)__name__ __module__ __qualname__r BM_compatiblejoinPATTERNr+rrrr r s]999HMHH:::::::;G:::::rr N) __doc__r fixer_utilrrrrrr r BaseFixr rrrr6sHHHHHHHHHHHHHHHHHH::::: ":::::r