3
yYðiÝ  ã               @   sX   d Z ddlmZ ddlmZ ddlmZmZ ddl	Z	G dd„ deƒZ
G d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               @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚDistutilsRefactoringToolc             O   s   t j|f|žŽ  d S )N)r   Úerror)ÚselfÚmsgÚargsÚkw© r   ú;/tmp/pip-build-ue6tjl93/setuptools/setuptools/lib2to3_ex.pyÚ	log_error   s    z"DistutilsRefactoringTool.log_errorc             G   s   t j|f|žŽ  d S )N)r   Úinfo)r   r	   r
   r   r   r   Úlog_message   s    z$DistutilsRefactoringTool.log_messagec             G   s   t j|f|žŽ  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               @   s&   e Zd Zd	dd„Zdd„ Zdd„ ZdS )
r   Fc             C   sr   | j jdk	rd S |sd S tjddj|ƒ ƒ | jƒ  | jƒ  |rbtjrnt	| j
ƒ}|j|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   sb   | j r
d S g | _ xtjD ]}| j jt|ƒƒ qW | jjd k	r^x | jjD ]}| j jt|ƒƒ qFW d 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   sN   t | dg ƒ}| jjd k	r&|j| jjƒ x"|D ]}|| jkr,| jj|ƒ q,W d 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)F)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   