o
    bc
                     @   sJ   d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 G dd dejZdS )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)AttrCallNameNumber	SubscriptNodesymsc                   @   s8   e Zd Zg dZdZdd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   0/usr/lib/python3.10/lib2to3/fixes/fix_sys_exc.py	<genexpr>   s    zFixSysExc.<genexpr>c                 C   st   |d d }t | j|j}ttd|jd}ttd|}|d j|d jd _|	t
| ttj||jdS )N	attribute    exc_info)prefixsysdot   )r   r   indexvaluer   r   r   r   childrenappendr   r   r	   power)selfnoderesultssys_attrr   callattrr   r   r   	transform   s   zFixSysExc.transformN)__name__
__module____qualname__r   BM_compatiblejoinPATTERNr&   r   r   r   r   r
      s    r
   N)__doc__ r   
fixer_utilr   r   r   r   r   r   r	   BaseFixr
   r   r   r   r   <module>   s    
$