B
    d>                 @   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$t| S )z8Ensure find-links option end-up being a list of strings.)
isinstancestrsplittuplelistAssertionError)
find_links r   F/var/www/html/venv/lib/python3.7/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}x|D ]} |jj| dd qDW |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|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rt|d
 d	 d d  ng }| jr|| j tj	
|  }| }x(||D ]}	|	|kr||	r|	S qW t  }
tjdddddd|
g}|r|d |d k	r*|d|f x"|p4g D ]}|d|f q6W ||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j	|d}|jj ||d} | 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   0   sX    

 

 

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,   m   s    r,   c             C   s@   dd l }y|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<   r8   r6   	distutilsr   distutils.errorsr   	functoolsr    r   r*   r   warningsr   r   r   r&   r   r,   r   r   r   r   r   r   <module>   s"   	=	