a
    hbòf–  ã                   @   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   úk/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.pyÚ
<listcomp>   ó    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ƒ�V}zt||d|d� W n0 ty~ } zt|d	�|‚W Y d
}~n
d
}~0 0 W d
  ƒ n1 s”0    Y  W d
  ƒ n1 s²0    Y  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_dirÚ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.    ýý
ü
^r-   )Ú__doc__Úloggingr   Úpip._internal.build_envr   Úpip._internal.cli.spinnersr   Úpip._internal.exceptionsr   r   r   Ú$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"   
ú