B
    `dP	                 @   sl   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 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.
    N)	Mixin2to3)log)RefactoringToolget_fixers_from_package   )SetuptoolsDeprecationWarningc               @   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-k1jh9j23/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   s~   | j jdk	rd S |sd S tdt tdd|  |   | 	  |rnt
jrzt| j}|j|ddd nt| | d S )NTz2to3 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   sb   | j r
d S g | _ xtjD ]}| j t| qW | jjd k	r^x | jjD ]}| 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_names7   s    zMixin2to3.__build_fixer_namesc             C   sN   t | dg }| jjd k	r&|| jj x"|D ]}|| jkr,| 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_fixersA   s    

zMixin2to3.__exclude_fixersN)F)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   