File: //lib/python3/dist-packages/setuptools/__pycache__/installer.cpython-310.pyc
o
    �_�a�  �                   @   s�   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
Z
d dlmZ ddl
mZ dd� Zd	d
� Zdd� ZdS )
�    N)�log)�DistutilsError)�Wheel�   )�SetuptoolsDeprecationWarningc                 C   s(   t | t�r	| �� S t | ttf�sJ �| S )z8Ensure find-links option end-up being a list of strings.)�
isinstance�str�split�tuple�list)�
find_links� r
   �6/usr/lib/python3/dist-packages/setuptools/installer.py�_fixup_find_links   s   
r   c                 C   sH  t �dt� zt�d� W n tjy   | �dtj� Y nw t	|�}| �
d�}d|v r0td��dtj
vo9dtj
v}d	tj
v rBd
}n
d|v rM|d d }nd
}d
|v r_t|d
 d �d
d
� ng }| jrj|�| j� tj�| �� �}t�� }t�|�D ]}||v r�|�|�r�|  S q{t�� ��}	tjdddddd|	g}
|r�|
�d� |d
ur�|
�d|f� |p�g D ]	}|
�d|f� q�|
�|jp�t|�� zt�|
� W n tj y� } ztt|��|�d
}~ww t!t"�"tj�#|	d��d �}
tj�#||
�$� �}|
�%|� t�&|tj�#|d��}tj'j(||d�} | W  d
  � S 1 �sw   Y  d
S )zLFetch an egg needed for building.
    Use pip/wheel to fetch/build a wheel.z\setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.�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_urlr   r   z-m�pipz--disable-pip-version-checkz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlr   zEGG-INFO)�metadata))�warnings�warnr   �
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   sx   ��
 ��
�
��
��&�rI   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    _   s   r    )r5   r"