a
    eÖ0hÙ  ã                   @   s”   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lmZ d dlmZ ddlmZ d	d
„ Zdd„ Zdd„ Zdd„ ZdS )é    N)Úlog)ÚDistutilsError)Úeasy_install)Úsix)ÚWheelé   )ÚTemporaryDirectoryc                 C   s*   t | tjƒr|  ¡ S t | ttfƒs&J ‚| S )z8Ensure find-links option end-up being a list of strings.)Ú
isinstancer   Ústring_typesÚsplitÚtupleÚlist)Ú
find_links© r   úB/var/www/auris/lib/python3.9/site-packages/setuptools/installer.pyÚ_fixup_find_links   s    r   c                 C   s¶   |   ddgi¡}| d¡}| ¡  | dd„ |  d¡ ¡ D ƒ¡ | jr|| jdd… }d|v rpt|d d ƒ| }d|f|d< |  ¡ }t|d	g|d
ddddd
d
dd}| 	¡  | |¡S )zJFetch an egg needed for building.

    Legacy path using EasyInstall.
    Úscript_argsr   c                 s   s"   | ]\}}|d v r||fV  qdS ))r   Ú	site_dirsÚ	index_urlÚoptimizer   Úallow_hostsNr   )Ú.0ÚkÚvr   r   r   Ú	<genexpr>    s   þz*_legacy_fetch_build_egg.<locals>.<genexpr>Nr   r   ÚsetupÚxTF)
ÚargsÚinstall_dirZexclude_scriptsZalways_copyZbuild_directoryÚeditableÚupgradeZmulti_versionZ	no_reportÚuser)
Ú	__class__Úget_option_dictÚclearÚupdateÚitemsÚdependency_linksr   Úget_egg_cache_dirr   Úensure_finalized)ÚdistÚreqZtmp_distÚoptsÚlinksr   Úcmdr   r   r   Ú_legacy_fetch_build_egg   s(    

þür/   c                 C   s´  zt  d¡ W n, t jy:   |  dtj¡ t| |ƒ Y S 0 zt  d¡ W n" t jyl   |  dtj¡ Y n0 t|ƒ}|  d¡}d|v rt	dƒ‚dt
jv s¤d	t
jv rªd
}nd}dt
jv r¾d}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 r4| |¡r4|  S q4tƒ <}	tjdddddd|	g}
|rŠ|
 d¡ |dur¢|
 d|f¡ |durÆ|D ]}|
 d|f¡ q°|jrÜ|
 |j¡ n|
 t|ƒ¡ zt |
¡ W n4 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 s¦0    Y  dS )zLFetch an egg needed for building.

    Use pip/wheel to fetch/build a wheel.Úpipz­WARNING: The pip package is not available, falling back to EasyInstall for handling setup_requires/test_requires; this is deprecated and will be removed in a future version.Úwheelz,WARNING: The wheel package is not available.r   r   zQthe `allow-hosts` option is not supported when using pip to install requirements.Z	PIP_QUIETZPIP_VERBOSEFTZPIP_INDEX_URLNr   r   r   z-mz--disable-pip-version-checkz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlr   zEGG-INFO)Úmetadata)&Úpkg_resourcesÚget_distributionÚDistributionNotFoundÚannouncer   ÚWARNr/   Ústrip_markerr#   r   ÚosÚenvironr   r'   ÚextendÚpathÚrealpathr(   ÚEnvironmentÚfind_distributionsÚcan_addr   ÚsysÚ
executableÚappendÚurlÚstrÚ
subprocessÚ
check_callÚCalledProcessErrorr   ÚglobÚjoinÚegg_nameZinstall_as_eggÚPathMetadataÚDistributionÚfrom_filename)r*   r+   r,   Úquietr   r   Zeggs_dirÚenvironmentZegg_distÚtmpdirr.   ÚlinkÚer1   Údist_locationZdist_metadatar   r   r   Úfetch_build_egg8   s€    ü


ü


"
ÿÿrU   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)r3   ÚRequirementÚparserE   Úmarker)r+   r   r   r   r8      s    r8   )rI   r9   rF   rA   Ú	distutilsr   Údistutils.errorsr   r3   Zsetuptools.command.easy_installr   Zsetuptools.externr   Zsetuptools.wheelr   Ú
py31compatr   r   r/   rU   r8   r   r   r   r   Ú<module>   s    U