U
    ªÃT_Ý  ã                   @   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   ú9/tmp/pip-unpacked-wheel-sr6cxcdi/setuptools/lib2to3_ex.pyÚ	log_error   s    z"DistutilsRefactoringTool.log_errorc                 G   s   t j|f|žŽ  d S r   )r   Úinfo©r	   r
   r   r   r   r   Úlog_message   s    z$DistutilsRefactoringTool.log_messagec                 G   s   t j|f|žŽ  d S r   )r   Údebugr   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 dd |¡ ¡ |  ¡  |  ¡  |rbtjrnt	| j
ƒ}|j|ddd� nt | |¡ 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   sZ   | j r
d S g | _ tjD ]}| j  t|ƒ¡ q| jjd k	rV| jjD ]}| j  t|ƒ¡ q@d S r   )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   sJ   t | dg ƒ}| jjd k	r&| | jj¡ |D ]}|| jkr*| j |¡ q*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   	