U
    aÊ¹j”  ã                   @   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	lmZ d
d„ Zdd„ Ze	dœdd„Zdd„ Zdd„ Zdd„ ZG dd„ deƒZdS )é    N)Úpartialé   )Ú_reqs)Ú
_StrOrIter)ÚSetuptoolsDeprecationWarning)ÚWheel)Úlog)ÚDistutilsErrorc                 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   úS/var/www/html/bwave/python/venv/lib/python3.8/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   )Úrequiresc                 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   r   r!   Zresolved_distsr   r   r   Ú_fetch_build_eggs"   s    ýr'   c                 C   s  dd l }t|ƒ}|  d¡}d|kr*tdƒ‚dtjko<dtjk}dtjkrNd }nd|krd|d d	 }nd }d
|krˆt|d
 d	 ƒd d … ng }| jrž| | j¡ tj	 
|  ¡ ¡}| ¡ }| |¡D ]}	|	|krÀ| |	¡rÀ|	  S qÀt ¡ ��$}
tjdddddd|
g}|�r| d¡ |d k	�r*| d|f¡ |�p2g D ]}| d|f¡ �q4| |j�p\t|ƒ¡ zt |¡ W n4 tjk
�r¢ } ztt|ƒƒ|‚W 5 d }~X Y nX tt tj	 |
d¡¡d ƒ}tj	 || ¡ ¡}| |¡ | |tj	 |d¡¡}|jj ||d�W  5 Q R £ S Q R X 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   2   sl    
ÿ
"ÿ
ø


 
 ÿ ÿ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-   u   s    r-   c                 C   s@   dd l }z| d¡ W n$ |jk
r:   |  dtj¡ Y nX 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=   r9   r7   Ú	functoolsr   Ú r   r   Úwarningsr   r+   r   Ú	distutilsr   Údistutils.errorsr	   r   r   r'   r   r-   r   r   r   r   r   r   Ú<module>   s$   	C	