î
\á[\
  ã               @   sg   d  Z  d d l m Z d d l m Z m Z m Z m Z m Z m	 Z	 m
 Z
 Gd d „  d e j ƒ Z d S)z˜Fixer 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)ÚAttrÚCallÚNameÚNumberÚ	SubscriptÚNodeÚsymsc               @   sQ   e  Z d  Z d d d g Z d Z d d j d d „  e Dƒ ƒ Z d	 d
 „  Z d S)Ú	FixSysExcÚexc_typeÚ	exc_valueÚexc_tracebackTzN
              power< 'sys' trailer< dot='.' attribute=(%s) > >
              ú|c             c   s   |  ] } d  | Vq d S)z'%s'N© )Ú.0Úer   r   ú//usr/lib/python3.4/lib2to3/fixes/fix_sys_exc.pyú	<genexpr>   s    zFixSysExc.<genexpr>c             C   s    | d d } t  |  j j | j ƒ ƒ } t t d ƒ d | j ƒ} t t d ƒ | ƒ } | d j | d j d _ | j	 t
 | ƒ ƒ t t j | d | j ƒS)NZ	attributeé    Úexc_infoÚprefixÚsysÚdoté   )r   r   ÚindexÚvaluer   r   r   r   ZchildrenÚappendr   r   r	   Zpower)ÚselfZnodeZresultsZsys_attrr   ÚcallÚattrr   r   r   Ú	transform   s    zFixSysExc.transformN)Ú__name__Ú
__module__Ú__qualname__r   ZBM_compatibleÚjoinZPATTERNr    r   r   r   r   r
      s    r
   N)Ú__doc__Ú r   Z
fixer_utilr   r   r   r   r   r   r	   ZBaseFixr
   r   r   r   r   Ú<module>   s   4