3
;p_	                 @   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 )zH
Customized Mixin2to3 support:

 - adds support for converting doctests
    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   =/tmp/pip-install-ofl94hr3/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   s~   | j jdk	rd S |sd S tjdt tjddj|  | j  | j	  |rnt
jrzt| j}|j|ddd ntj| | 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 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_names4   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_fixers>   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   