U
    Ðvag–  ã                   @   sš   d Z 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 ddlmZ ddlmZ e e¡Zeed	œd
d„Zeeeeeedœdd„ZdS )z;Metadata generation logic for legacy source distributions.
é    N)ÚBuildEnvironment)Úopen_spinner)ÚInstallationErrorÚInstallationSubprocessErrorÚMetadataGenerationFailed)Úmake_setuptools_egg_info_args)Úcall_subprocess)ÚTempDirectory)Ú	directoryÚreturnc                 C   sR   dd„ t  | ¡D ƒ}|s&td| › �ƒ‚t|ƒdkr@td | ¡ƒ‚t j | |d ¡S )z.Find an .egg-info subdirectory in `directory`.c                 S   s   g | ]}|  d ¡r|‘qS )z	.egg-info)Úendswith)Ú.0Úf© r   úb/var/www/html/myvenv/lib/python3.8/site-packages/pip/_internal/operations/build/metadata_legacy.pyÚ
<listcomp>   s     
 z"_find_egg_info.<locals>.<listcomp>z No .egg-info directory found in é   z-More than one .egg-info directory found in {}r   )ÚosÚlistdirr   ÚlenÚformatÚpathÚjoin)r
   Ú	filenamesr   r   r   Ú_find_egg_info   s    ÿr   )Ú	build_envÚsetup_py_pathÚ
source_dirÚisolatedÚdetailsr   c           	      C   sš   t  d||¡ tddd�j}t|||d�}| �^ tdƒ�J}zt||d|d� W n. tk
r| } zt|d	�|‚W 5 d
}~X Y nX W 5 Q R X W 5 Q R X t	|ƒS )znGenerate metadata using setup.py-based defacto mechanisms.

    Returns the generated metadata directory.
    z2Running setup.py (path:%s) egg_info for package %szpip-egg-infoT)ÚkindÚglobally_managed)Úegg_info_dirZno_user_configzPreparing metadata (setup.py)zpython setup.py egg_info)ÚcwdÚcommand_descÚspinner)Úpackage_detailsN)
ÚloggerÚdebugr	   r   r   r   r   r   r   r   )	r   r   r   r   r   r"   Úargsr%   Úerrorr   r   r   Úgenerate_metadata$   s.    ýý
ü
2r+   )Ú__doc__Úloggingr   Úpip._internal.build_envr   Úpip._internal.cli.spinnersr   Úpip._internal.exceptionsr   r   r   Z$pip._internal.utils.setuptools_buildr   Úpip._internal.utils.subprocessr   Úpip._internal.utils.temp_dirr	   Ú	getLoggerÚ__name__r'   Ústrr   Úboolr+   r   r   r   r   Ú<module>   s"   
ú