3
LY                 @   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   o/private/var/folders/7d/20zwc49s3kn54d3vgq8bd4640000gn/T/pip-build-an2lx5zf/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   