B
    `dN                 @   s   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ erddlmZmZmZ ddlmZ ddlmZ eeZG dd deZ dd Z!dS )z6Legacy installation process, i.e. `setup.py install`.
    N)change_root)
deprecated)
indent_log)
ensure_dir)make_setuptools_install_args)runner_with_spinner_message)TempDirectory)MYPY_CHECK_RUNNING)ListOptionalSequence)BuildEnvironment)Schemec               @   s   e Zd Zdd ZdS )LegacyInstallFailurec             C   s   t  | _d S )N)sysexc_infoparent)self r   K/tmp/pip-unpacked-wheel-hu9qqap1/pip/_internal/operations/install/legacy.py__init__   s    zLegacyInstallFailure.__init__N)__name__
__module____qualname__r   r   r   r   r   r      s   r   c                s  |j }tdd}ytj|jd}t||| | |||||	|d}td|
}t " | |||d W d Q R X W d Q R X tj	|st
d| dS W n tk
r   tY nX t|}|  }W d Q R X W d Q R X  fd	d
}xL|D ]$}tj|}|dr||}P qW td|d|
ddd dS g }xH|D ]@}| }tj|rj|tjj7 }|tj||| qDW |  t| tj|d}t|d}|d|d  W d Q R X dS )Nrecord)kindzinstall-record.txt)
global_optionsinstall_optionsrecord_filenamerootprefix
header_dirhomeuse_user_siteno_user_config	pycompilezRunning setup.py install for {})cmdcwdzRecord file %s not foundFc                s&    d kst j| s| S t | S d S )N)ospathisabsr   )r)   )r   r   r   prepend_root`   s    zinstall.<locals>.prepend_rootz	.egg-infoz{} did not indicate that it installed an .egg-info directory. Only setup.py projects generating .egg-info directories are supported.zfor maintainers: updating the setup.py of {0}. For users: contact the maintainers of {0} to let them know to update their setup.py.z20.2iV  )reasonreplacementgone_inissueTzinstalled-files.txtw
)headersr   r(   r)   joinr   r   formatr   existsloggerdebug	Exceptionr   openread
splitlinesdirnameendswithr   stripisdirsepappendrelpathsortr   write)r   r   r   r"   r    r#   r%   schemesetup_py_pathisolatedreq_name	build_envunpacked_source_directoryreq_descriptionr!   temp_dirr   install_argsrunnerfrecord_linesr+   line	directoryegg_info_dir	new_linesfilenameinst_files_pathr   )r   r   install!   sp    

 


rW   )"__doc__loggingr(   r   distutils.utilr   pip._internal.utils.deprecationr   pip._internal.utils.loggingr   pip._internal.utils.miscr   $pip._internal.utils.setuptools_buildr   pip._internal.utils.subprocessr   pip._internal.utils.temp_dirr   pip._internal.utils.typingr	   typingr
   r   r   pip._internal.build_envr   pip._internal.models.schemer   	getLoggerr   r6   r8   r   rW   r   r   r   r   <module>   s$   
