î
\á[\­  ã               @   s{   d  Z  d d l m Z d d l m Z m Z i i d d 6d 6Z i  Z d d „  Z d	 d
 „  Z	 Gd d „  d e j
 ƒ Z d S)z?Fix incompatible renames

Fixes:
  * sys.maxint -> sys.maxsize
é   )Ú
fixer_base)ÚNameÚ
attr_chainÚmaxsizeZmaxintÚsysc             C   s   d d j  t t |  ƒ ƒ d S)Nú(ú|ú))ÚjoinÚmapÚrepr)Zmembers© r   ú//usr/lib/python3.4/lib2to3/fixes/fix_renames.pyÚ
alternates   s    r   c              c   s{   xt t  t j ƒ  ƒ D]` \ }  } xQ t  | j ƒ  ƒ D]= \ } } | t |  | f <d |  | | f Vd |  | f Vq2 Wq Wd  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                   sL   e  Z d  Z d Z d j e ƒ  ƒ Z d Z ‡  f d d †  Z d d „  Z	 ‡  S)Ú
FixRenamesTr   Zprec                sX   t  t |  ƒ j ‰  ˆ  | ƒ } | rT t ‡  f d d †  t | d ƒ Dƒ ƒ rP d S| Sd 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   sc   | j  d ƒ } | j  d ƒ } | r_ | r_ t | j | j f } | j t | d | j ƒƒ n  d  S)NZ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PATTERNZorderr   r(   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   