o
    a+)h                     @   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d	ed
efddZdededededed
ef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   mC:\Users\User\Downloads\Proyecto_IoT\venv\Lib\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detailsc           	      C   s   t d|| tdddj}t|||d}| F td%}z
t||d|d W n ty9 } zt|d	|d
}~ww W d
   n1 sDw   Y  W d
   t	|S W d
   t	|S 1 s`w   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$   sB   



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>   s0    
