
    ZQd
                     `    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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                   d    e Zd Zg dZdZdd                    d eD                       z  Zd ZdS )	FixSysExc)exc_type	exc_valueexc_tracebackTzN
              power< 'sys' trailer< dot='.' attribute=(%s) > >
              |c              #       K   | ]	}d |z  V  
dS )z'%s'N ).0es     0/usr/lib/python3.11/lib2to3/fixes/fix_sys_exc.py	<genexpr>zFixSysExc.<genexpr>   s&      ::AVaZ::::::    c                    |d         d         }t          | j                            |j                            }t	          t          d          |j                  }t          t          d          |          }|d         j        |d         j        d         _        |	                    t          |                     t          t          j        ||j                  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attrs          r   	transformzFixSysExc.transform   s    ;'*t}**8>::;;D$$X_===DKK&&%,U^%:Q"Ie$$%%%DJT[9999r   N)__name__
__module____qualname__r   BM_compatiblejoinPATTERNr+   r   r   r   r   r      s]        999HMHH:::::::;G: : : : :r   r   N)__doc__ r   
fixer_utilr   r   r   r   r   r	   r
   BaseFixr   r   r   r   <module>r6      s           H H H H H H H H H H H H H H H H H H: : : : :
" : : : : :r   