File: //lib64/python3.6/lib2to3/fixes/__pycache__/fix_sys_exc.cpython-36.pyc
3
  \
  �               @   sJ   d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 G dd� dej�ZdS )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               @   s:   e Zd ZdddgZdZddjdd� eD �� Zd	d
� ZdS )�	FixSysExc�exc_type�	exc_value�
exc_tracebackTzN
              power< 'sys' trailer< dot='.' attribute=(%s) > >
              �|c             c   s   | ]}d | V  qdS )z'%s'N� )�.0�er   r   �1/usr/lib64/python3.6/lib2to3/fixes/fix_sys_exc.py�	<genexpr>   s    zFixSysExc.<genexpr>c             C   st   |d d }t | jj|j��}ttd�|jd�}ttd�|�}|d j|d jd _|j	t
|�� ttj
||jd�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   $