
(°hP	  ã               @   s”   d  Z  d d l Z d d l m Z d d l m Z d d l m Z m	 Z	 d d l
 Z
 d d l m Z Gd d	 „  d	 e ƒ Z Gd
 d „  d e ƒ Z d S)zy
Customized Mixin2to3 support:

 - adds support for converting doctests


This module raises an ImportError on Python 2.
é    N)Ú	Mixin2to3)Úlog)ÚRefactoringToolÚget_fixers_from_packageé   )ÚSetuptoolsDeprecationWarningc               @   s4   e  Z d  Z d d „  Z d d „  Z d d „  Z d S)ÚDistutilsRefactoringToolc             O   s   t  j | | Œ d  S)N)r   Úerror)ÚselfÚmsgÚargsÚkw© r   ú;/tmp/pip-build-kmztzv_d/setuptools/setuptools/lib2to3_ex.pyÚ	log_error   s    z"DistutilsRefactoringTool.log_errorc             G   s   t  j | | Œ d  S)N)r   Úinfo)r
   r   r   r   r   r   Úlog_message   s    z$DistutilsRefactoringTool.log_messagec             G   s   t  j | | Œ d  S)N)r   Údebug)r
   r   r   r   r   r   Ú	log_debug   s    z"DistutilsRefactoringTool.log_debugN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r      s   r   c               @   s7   e  Z d  Z d d d „ Z d d „  Z d d „  Z d S)	r   Fc             C   s¬   |  j  j d k	 r d  S| s  d  St j d t ƒ t j d d j | ƒ ƒ |  j ƒ  |  j	 ƒ  | r˜ t
 j r¨ t |  j ƒ } | j | d d d d ƒn t j |  | ƒ d  S)NTz¥2to3 support is deprecated. If the project still requires Python 2 support, please migrate to a single-codebase solution or employ an independent conversion process.zFixing ú ÚwriteZdoctests_only)ÚdistributionZuse_2to3ÚwarningsÚwarnr   r   r   ÚjoinÚ_Mixin2to3__build_fixer_namesÚ_Mixin2to3__exclude_fixersÚ
setuptoolsZrun_2to3_on_doctestsr   Úfixer_namesÚrefactorÚ
_Mixin2to3Úrun_2to3)r
   ÚfilesZdoctestsÚrr   r   r   r$      s    

	zMixin2to3.run_2to3c             C   sƒ   |  j  r d  Sg  |  _  x' t j D] } |  j  j t | ƒ ƒ q  W|  j j d  k	 r x* |  j j D] } |  j  j t | ƒ ƒ q_ Wd  S)N)r!   r    Zlib2to3_fixer_packagesÚextendr   r   Zuse_2to3_fixers)r
   Úpr   r   r   Z__build_fixer_names7   s    		zMixin2to3.__build_fixer_namesc             C   sk   t  |  d g  ƒ } |  j j d  k	 r7 | j |  j j ƒ x- | D]% } | |  j k r> |  j j | ƒ q> Wd  S)NZexclude_fixers)Úgetattrr   Zuse_2to3_exclude_fixersr'   r!   Úremove)r
   Zexcluded_fixersZ
fixer_namer   r   r   Z__exclude_fixersA   s    zMixin2to3.__exclude_fixersN)r   r   r   r$   r   r   r   r   r   r   r      s   
r   )Ú__doc__r   Údistutils.utilr   r#   Ú	distutilsr   Úlib2to3.refactorr   r   r    Z_deprecation_warningr   r   r   r   r   r   Ú<module>   s   