File: //opt/alt/python37/lib/python3.7/site-packages/setuptools/__pycache__/installer.cpython-37.pyc
B
    m�Re�
  �               @   sp   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	Z	d dl
mZ dd� Zdd� Z
d	d
� ZdS )�    N)�log)�DistutilsError)�Wheelc             C   s(   t | t�r| �� S t | ttf�s$t�| S )z8Ensure find-links option end-up being a list of strings.)�
isinstance�str�split�tuple�list�AssertionError)�
find_links� r   �E/opt/alt/python37/lib/python3.7/site-packages/setuptools/installer.py�_fixup_find_links
   s    
r   c             C   s@  yt �d� W n$ t jk
r2   | �dtj� Y nX t|�}| �d�}d|krVtd��dt	j
kohdt	j
k}dt	j
krzd	}nd
|kr�|d
 d }nd	}d|kr�t|d d �d	d	� ng }| jr�|�
| j� t	j�| �� �}t �� }x(t �|�D ]}||kr�|�|�r�|S q�W t�� �� }	tjd
ddddd|	g}
|�r>|
�d� |d	k	�rV|
�
d|f� x"|�p`g D ]}|
�
d|f� �qbW |
�|j�p�t|�� yt�|
� W n4 tjk
�r� } ztt|��|�W d	d	}~X Y nX tt�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.�wheelz,WARNING: The wheel package is not available.Zeasy_installZallow_hostszQthe `allow-hosts` option is not supported when using pip to install requirements.Z	PIP_QUIETZPIP_VERBOSEZ
PIP_INDEX_URLN�	index_url�   r   z-mZpipz--disable-pip-version-checkz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlr   zEGG-INFO)Zmetadata)&�
pkg_resourcesZget_distributionZDistributionNotFoundZannouncer   ZWARN�strip_markerZget_option_dictr   �os�environr   Zdependency_links�extend�path�realpathZget_egg_cache_dirZEnvironmentZfind_distributionsZcan_add�tempfileZTemporaryDirectory�sys�
executable�appendZurlr   �
subprocessZ
check_callZCalledProcessErrorr   �glob�joinZegg_nameZinstall_as_eggZPathMetadataZDistributionZ
from_filename)Zdist�reqZopts�quietr   r   Zeggs_dirZenvironmentZegg_distZtmpdir�cmd�link�er   Z
dist_locationZ
dist_metadatar   r   r
   �fetch_build_egg   s^    
 
 
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   ZRequirement�parser   Zmarker)r    r   r   r
   r   X   s    r   )r   r   r   r   r   Z	distutilsr   Zdistutils.errorsr   r   Zsetuptools.wheelr   r   r%   r   r   r   r   r
   �<module>   s   C