
    5h                        d dl mZ d dlZd dlZd dlZ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
 Zd Zd ZddZd Zd Zd Zd Z G d de          ZdS )    )annotationsN   )_reqs)metadata)SetuptoolsDeprecationWarning)Wheel)log)DistutilsErrorc                    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_linkss    4lib/python3.11/site-packages/setuptools/installer.py_fixup_find_linksr      sF    *c"" "!!!j5$-00000    c                r    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reqs     r   fetch_build_eggr      s4     d####D#...r   c                \     t           fdt          j                    D                       S )Nc              3  8   K   | ]}t          |          V  d S N)_dist_matches_req).0r   r   s     r   	<genexpr>z_present.<locals>.<genexpr>(   s.      QQ s++QQQQQQr   )anyr   distributionsr   s   `r   _presentr&   '   s/    QQQQ8N8P8PQQQQQQr   requires_reqs._StrOrIterreturnlist[metadata.Distribution]c           	     v    t                               d           t                      t          j        |          }t          j        t          |          }d |D             } fd|D             }|D ]B t          j	        
                    dt                               d                               C|S )N   )
stacklevelc              3  Z   K   | ]&}|j         r|j                                         "|V  'd S r   )markerevaluate)r!   r   s     r   r"   z$_fetch_build_eggs.<locals>.<genexpr>3   sS        3:9<9L9L9N9N     r   c                0    g | ]}t          |          S  )r   )r!   r   r   s     r   
<listcomp>z%_fetch_build_eggs.<locals>.<listcomp>6   s$    QQQc.tS99QQQr   r    )r   r   r   r   parse	itertoolsfilterfalser&   syspathinsertr   locate_file)r   r'   parsed_reqsmissing_reqsneeded_reqsresolved_distss   `     r   _fetch_build_eggsr@   +   s    +++d###+h''K(;??L #  K RQQQ[QQQN 6 6 	3t//33445555r   c                    t           j                            | j                  t           j                            |j                  k    o| j        |j        v S r   )	packagingutilscanonicalize_namenameversion	specifier)egg_distr   s     r   r    r    >   sH    ))(-88?,,SX66	7 	.-r   c           	        t          |          }|                     d          }d|v rt          d          dt          j        vodt          j        v}dt          j        v rd }nd|v r|d         d         }nd }d	|v r#t          |d	         d                   d d          ng }| j        r|                    | j                   t          j        	                    | 
                                          }t          j                            t          j        | d
                    }|D ]}t          ||          r|c S t!          j                    5 }	t$          j        dddddd|	g}
|r|
                    d           ||
                    d|f           |pg D ]}|
                    d|f           |
                    |j        pt-          |                     	 t/          j        |
           n4# t.          j        $ r"}t          t-          |                    |d }~ww xY wt5          t          j        t          j                            |	d                    d                   }t          j                            ||                                          }|                    |           t          j                            |dz             cd d d            S # 1 swxY w Y   d S )Neasy_installallow_hostszQthe `allow-hosts` option is not supported when using pip to install requirements.	PIP_QUIETPIP_VERBOSEPIP_INDEX_URL	index_urlr   r   z/*.egg)r9   z-mpipz--disable-pip-version-checkwheelz	--no-depsz-wz--quietz--index-urlz--find-linksz*.whlr   z	/EGG-INFO)strip_markerget_option_dictr
   osenvironr   dependency_linksextendr9   realpathget_egg_cache_dirr   Distributiondiscoverglobr    tempfileTemporaryDirectoryr8   
executableappendurlr   
subprocess
check_callCalledProcessErrorr   joinegg_nameinstall_as_eggat)r   r   optsquietrO   r   eggs_dircached_distsrH   tmpdircmdlinkerQ   dist_locations                  r   r   r   F   s^   
s

C //D6
 
 	
 rz)Mm2:.ME"*$$					%a(			7Ct7K7K$|,Q/0033QS   1$/000w 6 6 8 899H(11tyHATATAT7U7U1VVL   Xs++ 	OOO			$	&	& E&N)	
  	"JJy!!! JJy1222$" 	/ 	/DJJ-.... 	

37&c#hh'''	0!#&&&&, 	0 	0 	0 Q((a/	0diVW = =>>qABBXu~~/?/?@@]+++$''(CDD9E E E E E E E E E E E E E E E E E Es8   BK&#G87K&8H)H$$H))B0K&&K*-K*c                l    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)rB   requirementsRequirementr   r/   r%   s    r   rR   rR      s,     
 
,
,SXX
6
6CCJJr   c                    	 t          j        d           d S # t           j        $ r$ |                     dt          j                   Y d S w xY w)NrQ   z,WARNING: The wheel package is not available.)r   distributionPackageNotFoundErrorannouncer	   WARN)r   s    r   r   r      sa    Pg&&&&&( P P PDchOOOOOOPs    /A
Ac                      e Zd 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`.
    )i  
      N)__name__
__module____qualname___SUMMARY_DETAILS	_DUE_DATEr2   r   r   r   r      s!        JHH IIIr   r   )r'   r(   r)   r*   ) 
__future__r   r\   r6   rT   rb   r8   r]   packaging.requirementsrB   packaging.utilsr4   r   
_importlibr   warningsr   rQ   r   	distutilsr	   distutils.errorsr
   r   r   r&   r@   r    r   rR   r   r   r2   r   r   <module>r      s   " " " " " "      				     



                            2 2 2 2 2 2             + + + + + +  / / /R R R   &  9E 9E 9Ex	 	 	P P P    7     r   