o
     JAf                     @   sT   	 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 )   )
fixer_base)Name
attr_chainsysZ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replaceZ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%   Zmod_namer)   r   r   r   r   	transform>   s   

zFixRenames.transform)__name__
__module____qualname__ZBM_compatibler
   r   ZPATTERNorderr   r-   __classcell__r   r   r&   r   r   *   s    r   N) r   Z
fixer_utilr   r   r   r   r   r   ZBaseFixr   r   r   r   r   <module>   s    	