
|«‘_Ý  ã               @   sx   d  Z  d d l m Z d d l m Z d d l m Z m Z d d l	 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.
é    )Ú	Mixin2to3)Úlog)ÚRefactoringToolÚget_fixers_from_packageNc               @   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-3_sjtvrs/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 d j | ƒ ƒ |  j ƒ  |  j ƒ  | rˆ t j r˜ t	 |  j
 ƒ } | j | d d d d ƒn t j |  | ƒ d  S)NTzFixing ú ÚwriteZdoctests_only)ÚdistributionZuse_2to3r   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_names.   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_fixers8   s    zMixin2to3.__exclude_fixersN)r   r   r   r    r   r   r   r   r   r   r      s   
r   )Ú__doc__Údistutils.utilr   r   Ú	distutilsr   Úlib2to3.refactorr   r   r   r   r   r   r   r   Ú<module>   s   