<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    ʗRe?%                     @   sJ  d 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mZmZmZmZmZ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lm Z m!Z!m"Z" ddl#m$Z$m%Z% ddl&m'Z' ddl(m)Z)m*Z* erddl+m,Z, e-e.Z/G dd dZ0e1dddZ2G dd dZ3G dd de3Z4dS )z;Build Environment used for isolation during sdist building
    N)OrderedDict)	get_paths)TracebackType)TYPE_CHECKINGIterableListOptionalSetTupleType)where)Requirement)Version)__file__)open_spinner)get_platlibget_prefixed_libsget_purelib)get_default_environmentget_environment)call_subprocess)TempDirectorytempdir_kinds)PackageFinderc                   @   s   e Zd ZeddddZdS )_PrefixN)pathreturnc                 C   s@   || _ d| _ttjdkrdnd||ddd | _t|| _d S )NFntposix_prefix)baseplatbase)varsscripts)r   setupr   osnamebin_dirr   lib_dirs)selfr    r)   /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/build_env.py__init__    s    z_Prefix.__init__)__name__
__module____qualname__strr+   r)   r)   r)   r*   r      s   r   r   c                  C   s.   t t j} |  s t| S t| d S )zGet a file to pass to a Python executable, to run the currently-running pip.

    This is used to run a pip subprocess, for installing requirements into the build
    environment.
    z__pip-runner__.py)	pathlibPathpip_locationresolveparentis_dirr/   r$   fsdecode)sourcer)   r)   r*   _get_runnable_pip*   s    r9   c                   @   s   e Zd ZdZddddZddddZeee  ee ee	 ddd	d
Z
ee eeeeef  ee f dddZdee eeddddZeedee eeddddZdS )BuildEnvironmentzACreates and manages an isolated environment to install build depsNr0   c              	      s   t tjdd t fdddD | _g | _g | _tt| j	 D ] }| j
|j | j|j qDdd t t fD }tj jd| _tj| jst| j ttj| jd	d
dd"}|tdj|| jd W 5 Q R X d S )NT)kindglobally_managedc                 3   s&   | ]}|t tj j|fV  qd S N)r   r$   r   join.0r%   temp_dirr)   r*   	<genexpr>@   s   z,BuildEnvironment.__init__.<locals>.<genexpr>)normaloverlayc                 S   s   h | ]}t j|qS r)   )r$   r   normcase)r@   siter)   r)   r*   	<setcomp>N   s    z,BuildEnvironment.__init__.<locals>.<setcomp>rG   zsitecustomize.pywzutf-8)encodinga  
                import os, site, sys

                # First, drop system-sites related paths.
                original_sys_path = sys.path[:]
                known_paths = set()
                for path in {system_sites!r}:
                    site.addsitedir(path, known_paths=known_paths)
                system_paths = set(
                    os.path.normcase(path)
                    for path in sys.path[len(original_sys_path):]
                )
                original_sys_path = [
                    path for path in original_sys_path
                    if os.path.normcase(path) not in system_paths
                ]
                sys.path = original_sys_path

                # Second, add lib directories.
                # ensuring .pth file are processed.
                for path in {lib_dirs!r}:
                    assert not path in sys.path
                    site.addsitedir(path)
                )system_sitesr'   )r   r   	BUILD_ENVr   	_prefixes	_bin_dirs	_lib_dirsreversedlistvaluesappendr&   extendr'   r   r   r$   r   r>   	_site_direxistsmkdiropenwritetextwrapdedentformat)r(   prefixrK   fpr)   rA   r*   r+   =   s:    

   zBuildEnvironment.__init__c                 C   sn   dd dD | _ | jd d  }| j d }|r>||tj | jg}tjtj	|dtj	|d d S )Nc                 S   s   i | ]}|t j|d qS r=   )r$   environgetr?   r)   r)   r*   
<dictcomp>u   s    z.BuildEnvironment.__enter__.<locals>.<dictcomp>)PATHPYTHONNOUSERSITE
PYTHONPATHrb   1)
	_save_envrN   rT   splitr$   pathseprU   r_   updater>   )r(   r   old_path
pythonpathr)   r)   r*   	__enter__t   s    


zBuildEnvironment.__enter__exc_typeexc_valexc_tbr   c                 C   s:   | j  D ]*\}}|d kr*tj|d  q
|tj|< q
d S r=   )rf   itemsr$   r_   pop)r(   rn   ro   rp   varname	old_valuer)   r)   r*   __exit__   s    zBuildEnvironment.__exit__)reqsr   c           	      C   s   t  }t  }|rt| dr$t| jnt }|D ]}t|}|jdk	rV|jddisVq.||j	}|sr|
| q.t|jtr|j	 d|j }n|j	 d|j }|jj|jdds.|
||f q.||fS )	zReturn 2 sets:
        - conflicting requirements: set of (installed, wanted) reqs tuples
        - missing requirements: set of reqs
        rO   Nextra z==z===T)prereleases)sethasattrr   rO   r   r   markerevaluateget_distributionr%   add
isinstanceversionr   	specifiercontains)	r(   rv   missingconflictingenvreq_strreqdistinstalled_req_strr)   r)   r*   check_requirements   s*    
z#BuildEnvironment.check_requirementsr   finderrequirementsprefix_as_stringr;   r   c                C   s<   | j | }|jrtd|_|s"d S | jt ||||d d S )NT)r;   )rM   r#   AssertionError_install_requirementsr9   )r(   r   r   r   r;   r]   r)   r)   r*   install_requirements   s    

z%BuildEnvironment.install_requirements)pip_runnabler   r   r]   r;   r   c             	   C   s`  t j| dddd|jdg}t tjkr0|d dD ]:}t|j	|}|
d|d	d
 dt|pddhf q4|j}|r|
d|d g |dd  D ]}	|
d|	g qn
|d |jD ]}
|
d|
g q|jD ]}|
d|g q|jr|d |jr|d |d |
| dt i}td| }t|d| ||d W 5 Q R X d S )Ninstallz--ignore-installedz	--no-userz--prefixz--no-warn-script-locationz-v)	no_binaryonly_binaryz--_-,z:none:z-ir      z--extra-index-urlz
--no-indexz--find-linksz--trusted-hostz--prez--prefer-binary_PIP_STANDALONE_CERTzInstalling zpip subprocess to install )command_descspinnerextra_environ)sys
executabler   loggergetEffectiveLevelloggingDEBUGrS   getattrformat_controlrT   replacer>   sorted
index_urls
find_linkstrusted_hostsallow_all_prereleasesprefer_binaryr   r   r   )r   r   r   r]   r;   argsr   formatsr   extra_indexlinkhostr   r   r)   r)   r*   r      sT    










z&BuildEnvironment._install_requirements)r,   r-   r.   __doc__r+   rl   r   r   BaseExceptionr   ru   r   r/   r
   r	   r   r   staticmethodr   r   r)   r)   r)   r*   r:   :   s2   7
$r:   c                   @   sx   e Zd ZdZddddZddddZeee  ee ee	 ddd	d
Z
ddddZdee eeddddZdS )NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentNr0   c                 C   s   d S r=   r)   r(   r)   r)   r*   r+   	  s    zNoOpBuildEnvironment.__init__c                 C   s   d S r=   r)   r   r)   r)   r*   rl     s    zNoOpBuildEnvironment.__enter__rm   c                 C   s   d S r=   r)   )r(   rn   ro   rp   r)   r)   r*   ru     s    zNoOpBuildEnvironment.__exit__c                 C   s   d S r=   r)   r   r)   r)   r*   cleanup  s    zNoOpBuildEnvironment.cleanupr   r   c                C   s
   t  d S r=   )NotImplementedError)r(   r   r   r   r;   r)   r)   r*   r     s    z)NoOpBuildEnvironment.install_requirements)r,   r-   r.   r   r+   rl   r   r   r   r   ru   r   r   r/   r   r)   r)   r)   r*   r     s   
r   )5r   r   r$   r1   r   rZ   collectionsr   	sysconfigr   typesr   typingr   r   r   r   r	   r
   r   pip._vendor.certifir   "pip._vendor.packaging.requirementsr   Zpip._vendor.packaging.versionr   pipr   r3   pip._internal.cli.spinnersr   pip._internal.locationsr   r   r   pip._internal.metadatar   r   pip._internal.utils.subprocessr   pip._internal.utils.temp_dirr   r   "pip._internal.index.package_finderr   	getLoggerr,   r   r   r/   r9   r:   r   r)   r)   r)   r*   <module>   s4   $
 M