B
    ià¿að  ã               @   s„   d dl Z 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lmZ dd„ Zd	d
„ Zdd„ ZdS )é    N)Úlog)ÚDistutilsError)ÚWheelé   )ÚSetuptoolsDeprecationWarningc             C   s(   t | tƒr|  ¡ S t | ttfƒs$t‚| S )z8Ensure find-links option end-up being a list of strings.)Ú
isinstanceÚstrÚsplitÚtupleÚlistÚAssertionError)Ú
find_links© r   ú3lib/python3.7/site-packages/setuptools/installer.pyÚ_fixup_find_links   s    
r   c             C   sL  t  dt¡ yt d¡ W n$ tjk
r>   |  dtj¡ Y nX t	|ƒ}|  
d¡}d|krbtdƒ‚dtjkotdtjk}d	tjkr†d
}nd|krœ|d d }nd
}d|krÀt|d d ƒd
d
… ng }| jrÖ| | j¡ tj |  ¡ ¡}t ¡ }x(t |¡D ]}||krú| |¡rú|S qúW t ¡  }	tjdddddd|	g}
|rJ|
 d¡ |d
k	rb|
 d|f¡ x"|plg D ]}|
 d|f¡ qnW |
 |jp˜t|ƒ¡ yt |
¡ W n4 tj k
rÞ } ztt|ƒƒ|‚W d
d
}~X Y nX t!t" "tj #|	d¡¡d ƒ}tj #|| $¡ ¡}| %|¡ t &|tj #|d¡¡}tj'j(||d} | S Q R X d
S )zLFetch an egg needed for building.

    Use pip/wheel to fetch/build a wheel.z\setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.Úwheelz,WARNING: The wheel package is not available.Z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_urlr   r   z-mZpipz--disable-pip-version-checkz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlr   zEGG-INFO)Zmetadata))ÚwarningsÚwarnr   Úpkg_resourcesZget_distributionZDistributionNotFoundZannouncer   ZWARNÚstrip_markerZget_option_dictr   ÚosÚenvironr   Zdependency_linksÚextendÚpathÚrealpathZget_egg_cache_dirZEnvironmentZfind_distributionsZcan_addÚtempfileZTemporaryDirectoryÚsysÚ
executableÚappendZurlr   Ú
subprocessZ
check_callZCalledProcessErrorr   ÚglobÚjoinZegg_nameZinstall_as_eggZPathMetadataZDistributionZfrom_filename)ZdistÚreqZoptsÚquietr   r   Zeggs_dirZenvironmentZegg_distZtmpdirÚcmdÚlinkÚer   Zdist_locationZdist_metadatar   r   r   Úfetch_build_egg   sd    

 

 

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   ZRequirementÚparser   Zmarker)r#   r   r   r   r   _   s    r   )r!   r   r    r   r   r   Z	distutilsr   Zdistutils.errorsr   r   Zsetuptools.wheelr   Z_deprecation_warningr   r   r(   r   r   r   r   r   Ú<module>   s   H