B
    18\                 @   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   ]/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/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	   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 )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   r-   __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   