a
    hbòfï  ã                   @   sp   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	Z	d dl
mZ dd„ Zdd„ Zd	d
„ ZdS )é    N)Úlog)ÚDistutilsError)ÚWheelc                 C   s(   t | tƒr|  ¡ S t | ttfƒs$J ‚| S )z8Ensure find-links option end-up being a list of strings.)Ú
isinstanceÚstrÚsplitÚtupleÚlist)Ú
find_links© r   úQ/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/setuptools/installer.pyÚ_fixup_find_links   s    
r   c                 C   sV  zt  d¡ W n" t jy0   |  dtj¡ Y n0 t|ƒ}|  d¡}d|v rTtdƒ‚dt	j
vofdt	j
v}dt	j
v rxd	}nd
|v rŽ|d
 d }nd	}d|v r²t|d d ƒd	d	… ng }| jrÈ| | j¡ t	j |  ¡ ¡}t  ¡ }t  |¡D ]}||v rê| |¡rê|  S qêt ¡ ��,}	tjdddddd|	g}
|�r<|
 d¡ |d	u�rT|
 d|f¡ |�p\g D ]}|
 d|f¡ �q^|
 |j�p†t|ƒ¡ zt |
¡ W n6 tj�yÎ } ztt|ƒƒ|‚W Y d	}~n
d	}~0 0 tt t	j  |	d¡¡d ƒ}t	j  || !¡ ¡}| "|¡ t  #|t	j  |d¡¡}t j$j%||d�} | W  d	  ƒ S 1 �sH0    Y  d	S )zLFetch an egg needed for building.

    Use pip/wheel to fetch/build a wheel.Úwheelz,WARNING: The wheel package is not available.Úeasy_installZallow_hostszQthe `allow-hosts` option is not supported when using pip to install requirements.Z	PIP_QUIETZPIP_VERBOSEZPIP_INDEX_URLNÚ	index_urlé   r
   z-mÚpipz--disable-pip-version-checkz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlr   zEGG-INFO)Úmetadata)&Úpkg_resourcesÚget_distributionÚDistributionNotFoundÚannouncer   ÚWARNÚstrip_markerÚget_option_dictr   ÚosÚenvironr   Zdependency_linksÚextendÚpathÚrealpathZget_egg_cache_dirÚEnvironmentÚfind_distributionsÚcan_addÚtempfileÚTemporaryDirectoryÚsysÚ
executableÚappendÚurlr   Ú
subprocessÚ
check_callÚCalledProcessErrorr   ÚglobÚjoinÚegg_nameZinstall_as_eggÚPathMetadataÚDistributionÚfrom_filename)ÚdistÚreqÚoptsÚquietr   r
   Zeggs_dirÚenvironmentZegg_distZtmpdirÚcmdÚlinkÚer   Údist_locationZdist_metadatar   r   r   Úfetch_build_egg   sf    

 þ
ü

$
ÿÿr;   c                 C   s   t j t| ƒ¡} d| _| S )z«
    Return a new requirement without the environment marker to avoid
    calling pip with something like `babel; extra == "i18n"`, which
    would always be ignored.
    N)r   ÚRequirementÚparser   Úmarker)r3   r   r   r   r   X   s    r   )r,   r   r)   r%   r#   Ú	distutilsr   Údistutils.errorsr   r   Zsetuptools.wheelr   r   r;   r   r   r   r   r   Ú<module>   s   C