B
    `’»d  ã               @   s†   d dl Z d dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ er`d dlmZmZmZ e  e¡Zdd„ Zd	d
„ Zdd„ ZdS )é    N)Úopen_spinner)Ú make_setuptools_bdist_wheel_args)ÚLOG_DIVIDERÚcall_subprocessÚformat_command_args)ÚMYPY_CHECK_RUNNING)ÚListÚOptionalÚTextc             C   s^   t | ƒ}d |¡}|s |d7 }n:t ¡ tjkr8|d7 }n"| d¡sJ|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   ÚformatÚloggerÚgetEffectiveLevelÚloggingÚDEBUGÚendswithr   )Úcommand_argsÚcommand_outputÚcommand_descÚtext© r   úO/tmp/pip-unpacked-wheel-hu9qqap1/pip/_internal/operations/build/wheel_legacy.pyÚformat_command_result   s    



r   c             C   st   t | ƒ} | s2d |¡}|t||ƒ7 }t |¡ dS t| ƒdkrbd || ¡}|t||ƒ7 }t |¡ t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   )	Úsortedr   r   r   ÚwarningÚlenÚosÚpathÚjoin)ÚnamesÚtemp_dirÚnamer   r   Úmsgr   r   r   Úget_legacy_build_wheel_path*   s    


r$   c          	   C   s˜   t ||||d}d | ¡}t|ƒl}t d|¡ yt|||d}	W n* tk
rl   | d¡ t d| ¡ dS X t	 
|¡}
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.
    )Úglobal_optionsÚbuild_optionsÚdestination_dirz Building wheel for {} (setup.py)zDestination directory: %s)ÚcwdÚspinnerÚerrorzFailed building wheel for %sN)r    r!   r"   r   r   )r   r   r   r   Údebugr   Ú	ExceptionÚfinishr*   r   Úlistdirr$   )r"   Úsetup_py_pathÚ
source_dirr%   r&   ÚtempdÚ
wheel_argsÚspin_messager)   Úoutputr    Ú
wheel_pathr   r   r   Úbuild_wheel_legacyH   s2    



r6   )r   Úos.pathr   Úpip._internal.cli.spinnersr   Ú$pip._internal.utils.setuptools_buildr   Úpip._internal.utils.subprocessr   r   r   Úpip._internal.utils.typingr   Útypingr   r	   r
   Ú	getLoggerÚ__name__r   r   r$   r6   r   r   r   r   Ú<module>   s   
