o
    Wf                     @   sp   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 Zdd Zd	d
 ZdS )    N)log)DistutilsError)Wheelc                 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   P/var/www/html/mig_web/myenv/lib/python3.10/site-packages/setuptools/installer.py_fixup_find_links   s   
r   c                 C   s<  zt d W n t jy   | dtj Y nw t|}| d}d|v r*tddt	j
vo3dt	j
v}dt	j
v r<d	}nd
|v rG|d
 d }nd	}d|v rYt|d d d	d	 ng }| jrd|| j t	j|  }t  }t |D ]}||v r||r|  S qut }	tjdddddd|	g}
|r|
d |d	ur|
d|f |pg D ]	}|
d|f q|
|jpt| zt|
 W n tjy } ztt||d	}~ww ttt	j |	dd }t	j ||! }|"| t #|t	j |d}t j$j%||d} | W  d	   S 1 sw   Y  d	S )zLFetch an egg needed for building.

    Use pip/wheel to fetch/build a wheel.wheelz,WARNING: The wheel package is not available.easy_installallow_hostszQthe `allow-hosts` option is not supported when using pip to install requirements.	PIP_QUIETPIP_VERBOSEPIP_INDEX_URLN	index_url   r
   z-mpipz--disable-pip-version-checkz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlr   zEGG-INFO)metadata)&pkg_resourcesget_distributionDistributionNotFoundannouncer   WARNstrip_markerget_option_dictr   osenvironr   dependency_linksextendpathrealpathget_egg_cache_dirEnvironmentfind_distributionscan_addtempfileTemporaryDirectorysys
executableappendurlr   
subprocess
check_callCalledProcessErrorr   globjoinegg_nameinstall_as_eggPathMetadataDistributionfrom_filename)distreqoptsquietr   r
   eggs_direnvironmentegg_disttmpdircmdlinker   dist_locationdist_metadatar   r   r   fetch_build_egg   sp   

 


&rF   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   Requirementparser   marker)r:   r   r   r   r   X   s   r   )r2   r   r/   r+   r)   	distutilsr   distutils.errorsr   r   setuptools.wheelr   r   rF   r   r   r   r   r   <module>   s    C