File: //opt/alt/python35/lib64/python3.5/lib2to3/fixes/__pycache__/fix_sys_exc.cpython-35.pyc
��Yf
  �               @   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  | Vq d S)z'%s'N� )�.0�er   r   �>/opt/alt/python35/lib64/python3.5/lib2to3/fixes/fix_sys_exc.py�	<genexpr>   s    zFixSysExc.<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   Zchildren�appendr   r   r	   Zpower)�selfZnodeZresultsZsys_attrr   Zcall�attrr   r   r   �	transform   s    zFixSysExc.transformN)�__name__�
__module__�__qualname__r   Z
BM_compatible�joinZPATTERNr   r   r   r   r   r
      s    r
   N)
�__doc__� r   Z
fixer_utilr   r   r   r   r   r   r	   ZBaseFixr
   r   r   r   r   �<module>   s   4