o
    ó·iï  ã                   @   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.N)Ú
isinstanceÚstrÚsplitÚtupleÚlist)Ú
find_links© r   úZC:\Users\psant\Downloads\PAF backend\school\venv\Lib\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¡ |pªg D ]	}|
 d|f¡ q«|
 |jp½t|ƒ¡ 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_installZallow_hostszQthe `allow-hosts` option is not supported when using pip to install requirements.Z	PIP_QUIETZPIP_VERBOSEZ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   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)ÚdistÚreqÚoptsÚquietr   r
   Zeggs_dirÚenvironmentZegg_distZtmpdirÚcmdÚlinkÚer   Údist_locationZdist_metadatar   r   r   Úfetch_build_egg   sp   ÿ

 þ€
ü
€ÿ
ÿÿ&ä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   ÚRequirementÚparser   Úmarker)r3   r   r   r   r   X   s   r   )r,   r   r)   r%   r#   Ú	distutilsr   Údistutils.errorsr   r   Zsetuptools.wheelr   r   r;   r   r   r   r   r   Ú<module>   s    C