B
     S]                 @   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sysZmaxintmaxsizec             C   s   dd tt|  d S )N(|))joinmaprepr)members r   *lib/python3.7/lib2to3/fixes/fix_renames.py
alternates   s    r   c              c   sb   x\t t D ]L\} }xBt | D ]2\}}|t| |f< d| ||f V  d| |f V  q$W qW 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   Zprec                s@   t t| j  |}|r<t fddt|dD r8d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   sD   | d}| d}|r@|r@t|j|jf }|t||jd d S )NZ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__ZBM_compatibler
   r   ZPATTERNorderr   r*   __classcell__r   r   )r$   r   r   *   s
   r   N)__doc__ r   Z
fixer_utilr   r   r   r   r   r   ZBaseFixr   r   r   r   r   <module>   s   