a
    ñ»ji  ã                   @   s´   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	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d„ Zdd„ ZG dd„ deƒZdS )é    N)Úlog)ÚDistutilsError)Úpartialé   )Ú_reqs)ÚWheel)ÚSetuptoolsDeprecationWarningc                 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   ú:E:\soccer\ml_env\Lib\site-packages\setuptools/installer.pyÚ_fixup_find_links   s    
r   c                 C   s   t  ¡  t| ƒ t| |ƒS )zLFetch an egg needed for building.

    Use pip/wheel to fetch/build a wheel.)Ú_DeprecatedInstallerÚemitÚ_warn_wheel_not_availableÚ_fetch_build_egg_no_warn)ÚdistÚreqr   r   r   Úfetch_build_egg   s    r   c                 C   s\   dd l }tjdd� t| ƒ |jjt ||j¡t	t
| ƒdd�}|D ]} |jj| dd� qB|S )Nr   é   )Ú
stacklevelT)Ú	installerÚreplace_conflicting)Úreplace)Úpkg_resourcesr   r   r   Úworking_setÚresolver   ÚparseÚRequirementr   r   Úadd)r   Úrequiresr   Zresolved_distsr   r   r   Ú_fetch_build_eggs    s    ýr%   c                 C   s(  dd l }t|ƒ}|  d¡}d|v r*tdƒ‚dtjvo<dtjv}dtjv rNd }nd|v rd|d d	 }nd }d
|v rˆt|d
 d	 ƒd d … ng }| jrž| | j¡ tj	 
|  ¡ ¡}| ¡ }| |¡D ]}	|	|v rÀ| |	¡rÀ|	  S qÀt ¡ ��(}
tjdddddd|
g}|�r| d¡ |d u�r*| d|f¡ |�p2g D ]}| d|f¡ �q4| |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j	 |d¡¡}|jj ||d�W  d   ƒ S 1 �s0    Y  d S )Nr   Úeasy_installZallow_hostszQthe `allow-hosts` option is not supported when using pip to install requirements.Z	PIP_QUIETZPIP_VERBOSEZPIP_INDEX_URLÚ	index_urlr   r   z-mÚpipz--disable-pip-version-checkÚwheelz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlzEGG-INFO)Úmetadata)!r   Ú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)r   r   r   ÚoptsÚquietr'   r   Zeggs_dirÚenvironmentZegg_distZtmpdirÚcmdÚlinkÚer)   Údist_locationZdist_metadatar   r   r   r   0   sh    
ÿ
"ÿ
ø


$
ÿÿr   c                 C   s"   ddl }|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.
    r   N)r   r"   r!   r
   Úmarker)r   r   r   r   r   r+   s   s    r+   c                 C   s>   dd l }z| d¡ W n" |jy8   |  dtj¡ Y n0 d S )Nr   r)   z,WARNING: The wheel package is not available.)r   Úget_distributionÚDistributionNotFoundÚannouncer   ÚWARN)r   r   r   r   r   r   �   s
    r   c                   @   s   e Zd ZdZdZdS )r   z9setuptools.installer and fetch_build_eggs are deprecated.z„
    Requirements should be satisfied by a PEP 517 installer.
    If you are using pip, you can try `pip install --use-pep517`.
    N)Ú__name__Ú
__module__Ú__qualname__Z_SUMMARYZ_DETAILSr   r   r   r   r   Š   s   r   )r>   r-   r;   r7   r5   Ú	distutilsr   Údistutils.errorsr   Ú	functoolsr   Ú r   r)   r   Úwarningsr   r   r   r%   r   r+   r   r   r   r   r   r   Ú<module>   s"   	C	