o
    bc                     @   sV   d Z ddlmZ ddlmZmZ dddiiZi Zdd Zd	d
 Z	G dd dej
ZdS )z?Fix incompatible renames

Fixes:
  * sys.maxint -> sys.maxsize
   )
fixer_base)Name
attr_chainsysmaxintmaxsizec                 C   s   dd tt|  d S )N(|))joinmaprepr)members r   0/usr/lib/python3.10/lib2to3/fixes/fix_renames.py
alternates   s   r   c                  c   s\    t t D ]$\} }t | D ]\}}|t| |f< d| ||f V  d| |f V  qqd S )Nz
                  import_from< 'from' module_name=%r 'import'
                      ( attr_name=%r | import_as_name< attr_name=%r 'as' any >) >
                  z^
                  power< module_name=%r trailer< '.' attr_name=%r > any* >
                  )listMAPPINGitemsLOOKUP)modulereplaceold_attrnew_attrr   r   r   build_pattern   s   r   c                       s8   e Zd ZdZde ZdZ fddZdd Z	  Z
S )
FixRenamesTr	   prec                    s@   t t| j  |}|rt fddt|dD rdS |S dS )Nc                 3   s    | ]} |V  qd S )Nr   ).0objmatchr   r   	<genexpr>5   s    z#FixRenames.match.<locals>.<genexpr>parentF)superr   r    anyr   )selfnoderesults	__class__r   r   r    1   s   zFixRenames.matchc                 C   sL   | d}| d}|r"|r$t|j|jf }|t||jd d S d S d S )Nmodule_name	attr_name)prefix)getr   valuer   r   r,   )r%   r&   r'   mod_namer+   r   r   r   r   	transform>   s   

zFixRenames.transform)__name__
__module____qualname__BM_compatibler   r   PATTERNorderr    r0   __classcell__r   r   r(   r   r   *   s    r   N)__doc__ r   
fixer_utilr   r   r   r   r   r   BaseFixr   r   r   r   r   <module>   s    	