3
ûâdeç  ã               @   sº   d dl Z d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZ e jeƒZee eedœdd„Zee eeee eee d	œd
d„Zeeeee ee eee dœdd„ZdS )é    N)ÚListÚOptional)Úopen_spinner)Ú make_setuptools_bdist_wheel_args)ÚLOG_DIVIDERÚcall_subprocessÚformat_command_args)Úcommand_argsÚcommand_outputÚreturnc             C   sb   t | ƒ}d|› d�}|s"|d7 }n<tjƒ tjkr:|d7 }n$|jdƒsL|d7 }|d|› t› �7 }|S )z'Format command information for logging.zCommand arguments: Ú
zCommand output: Nonez'Command output: [use --verbose to show]zCommand output:
)r   ÚloggerÚgetEffectiveLevelÚloggingÚDEBUGÚendswithr   )r	   r
   Úcommand_descÚtext© r   úJ/tmp/pip-build-red6nood/pip/pip/_internal/operations/build/wheel_legacy.pyÚformat_command_result   s    


r   )ÚnamesÚtemp_dirÚnamer	   r
   r   c             C   st   t | ƒ} | s2dj|ƒ}|t||ƒ7 }tj|ƒ dS t| ƒdkrbdj|| ƒ}|t||ƒ7 }tj|ƒ tjj|| d ƒS )z>Return the path to the wheel in the temporary build directory.z1Legacy build of wheel for {!r} created no files.
Né   zZLegacy build of wheel for {!r} created more than one file.
Filenames (choosing first): {}
r   )	ÚsortedÚformatr   r   ÚwarningÚlenÚosÚpathÚjoin)r   r   r   r	   r
   Úmsgr   r   r   Úget_legacy_build_wheel_path$   s    	


r#   )r   Úsetup_py_pathÚ
source_dirÚglobal_optionsÚbuild_optionsÚtempdr   c             C   sš   t ||||d�}d| › d�}t|ƒ�l}tjd|ƒ yt|||d�}	W n* tk
rn   |jdƒ tjd| ƒ dS X tj	|ƒ}
t
|
|| ||	d	�}|S Q R X dS )
zŒBuild one unpacked package using the "legacy" build process.

    Returns path to wheel if successfully built. Otherwise, returns None.
    )r&   r'   Zdestination_dirzBuilding wheel for z (setup.py)zDestination directory: %s)ÚcwdÚspinnerÚerrorzFailed building wheel for %sN)r   r   r   r	   r
   )r   r   r   Údebugr   Ú	ExceptionÚfinishr+   r   Úlistdirr#   )r   r$   r%   r&   r'   r(   Ú
wheel_argsÚspin_messager*   Úoutputr   Ú
wheel_pathr   r   r   Úbuild_wheel_legacy?   s2    


r4   )r   Úos.pathr   Útypingr   r   Zpip._internal.cli.spinnersr   Z$pip._internal.utils.setuptools_buildr   Zpip._internal.utils.subprocessr   r   r   Ú	getLoggerÚ__name__r   Ústrr   r#   r4   r   r   r   r   Ú<module>   s,   
