
    @[h'                        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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j.        e/          Z0 G d d          Z1de2fdZ3dee2         fdZ4 G d d          Z5 G d de5          Z6d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                       e Zd ZdeddfdZdS )_PrefixpathreturnNc                     || _         d| _        t          t          j        dk    rdnd||d          d         | _        t          |          | _        d S )NFntposix_prefix)baseplatbase)varsscripts)r   setupr   osnamebin_dirr   lib_dirs)selfr   s     f/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/pip/_internal/build_env.py__init__z_Prefix.__init__!   sa    	
 GtOODDD11
 
 
  *$//    )__name__
__module____qualname__strr-    r.   r,   r   r       s6        0S 0T 0 0 0 0 0 0r.   r   r   c                      t          j        t                                                    j        } |                                 st          |           S t          j        | dz            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_dirr2   r'   fsdecode)sources    r,   get_runnable_pipr=   +   sV     \,''//118F==??  6{{;v 33444r.   c                      t          t          d          rt          j                    } nt                      t	                      g} d | D             S )zGet system site packages

    Usually from site.getsitepackages,
    but fallback on `get_purelib()/get_platlib()` if unavailable
    (e.g. in a virtualenv created by virtualenv<20)

    Returns normalized set of strings.
    getsitepackagesc                 L    h | ]!}t           j                            |          "S r3   )r'   r   normcase).0r   s     r,   	<setcomp>z+_get_system_sitepackages.<locals>.<setcomp>L   s(    <<<tBGT""<<<r.   )hasattrsiter?   r   r   )system_sitess    r,   _get_system_sitepackagesrG   ;   sO     t&'' 6+-- ${}}5<<|<<<<r.   c                   "   e Zd ZdZddZddZdeee                  dee         dee	         ddfd	Z
d
ee         deeeeef                  ee         f         fdZdddee         dededdf
dZededddee         dededdfd            ZdS )BuildEnvironmentzACreates and manages an isolated environment to install build depsr   Nc                    t          t          j        d          t          fddD                       | _        g | _        g | _        t          t          | j        	                                                    D ]@}| j        
                    |j                   | j                            |j                   At                      }t          j                            j        d          | _        t          j                            | j                  st          j        | j                   t+          t          j                            | j        d          dd	          5 }|                    t/          j        d
                              || j                             d d d            d S # 1 swxY w Y   d S )NT)kindglobally_managedc              3      K   | ]8}|t          t          j                            j        |                    fV  9d S N)r   r'   r   join)rB   r(   temp_dirs     r,   	<genexpr>z,BuildEnvironment.__init__.<locals>.<genexpr>U   sV       %
 %
 727<<t<<==>%
 %
 %
 %
 %
 %
r.   )normaloverlayrE   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)
                )rF   r*   )r   r   	BUILD_ENVr   	_prefixes	_bin_dirs	_lib_dirsreversedlistvaluesappendr)   extendr*   rG   r'   r   rO   	_site_direxistsmkdiropenwritetextwrapdedentformat)r+   prefixrF   fprP   s       @r,   r-   zBuildEnvironment.__init__R   s    m&=PTUUU$ %
 %
 %
 %
-%
 %
 %
 
 

 %'$&tDN$9$9$;$;<<== 	3 	3FN!!&.111N!!&/2222
 011hmV<<w~~dn-- 	%HT^$$$GLL);<<cG
 
 
 	HH 2 &lT^&LL5  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   )AF88F<?F<c                    d dD             | _         | j        d d          }| j         d         }|r2|                    |                    t          j                             | j        g}t          j                            t          j        	                    |          dt          j        	                    |          d           d S )Nc                 P    i | ]#}|t           j                            |d           $S rN   )r'   environget)rB   r(   s     r,   
<dictcomp>z.BuildEnvironment.__enter__.<locals>.<dictcomp>   s:     
 
 
 "*..t,,
 
 
r.   )PATHPYTHONNOUSERSITE
PYTHONPATHrn   1)
	_save_envrX   r^   splitr'   pathsepr_   rk   updaterO   )r+   r   old_path
pythonpaths       r,   	__enter__zBuildEnvironment.__enter__   s    
 
B
 
 

 ~aaa >&) 	4KKrz22333n%



--$' jooj99 	
 	
 	
 	
 	
r.   exc_typeexc_valexc_tbc                     | j                                         D ]7\  }}|!t          j                            |d            (|t          j        |<   8d S rN   )rr   itemsr'   rk   pop)r+   ry   rz   r{   varname	old_values         r,   __exit__zBuildEnvironment.__exit__   s^     #'."6"6"8"8 	0 	0GY 
w----&/
7##		0 	0r.   reqsc                 j   t                      }t                      }|rt          | d          rt          | j                  nt	                      }|D ]}t          |          }|j        |j                            ddi          s5|                    |j	                  }|s|
                    |           gt          |j        t                    r|j	         d|j         }n|j	         d|j         }|j                            |j        d          s|
                    ||f           ||fS )	zReturn 2 sets:
        - conflicting requirements: set of (installed, wanted) reqs tuples
        - missing requirements: set of reqs
        rY   Nextra z==z===T)prereleases)setrD   r   rY   r   r   markerevaluateget_distributionr(   add
isinstanceversionr   	specifiercontains)	r+   r   missingconflictingenvreq_strreqdistinstalled_req_strs	            r,   check_requirementsz#BuildEnvironment.check_requirements   sU    %%ee 	B 4--////,.. 
   B B!'** :)#*2E2EwPRm2T2T)++CH55 KK(((dlG44 G+.8(E(Et|(E(E%%+.8(F(F(F(F%}--dl-MM BOO%6$@AAAG##r.   finderr   requirementsprefix_as_stringrK   c                    | j         |         }|j        rJ d|_        |sd S |                     t                      ||||           d S )NT)rK   )rW   r&   _install_requirementsr=   )r+   r   r   r   rK   rg   s         r,   install_requirementsz%BuildEnvironment.install_requirements   so      01< 	F"" 	# 	
 	
 	
 	
 	
r.   pip_runnablerg   c          	      0   t           j        | dddd|j        dg}t                                          t
          j        k    r|                    d           dD ]h}t          |j	        |          }|
                    d|                    d	d
          z   d                    t          |pdh                    f           i|j        }|rB|
                    d|d         g           |dd          D ]}	|
                    d|	g           n|                    d           |j        D ]}
|
                    d|
g           |j        D ]}|
                    d|g           |j        r|                    d           |j        r|                    d           |                    d           |
                    |           dt'                      i}t)          d|           5 }t+          |d| ||           d d d            d S # 1 swxY w Y   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DEBUGr]   getattrformat_controlr^   replacerO   sorted
index_urls
find_linkstrusted_hostsallow_all_prereleasesprefer_binaryr   r   r   )r   r   r   rg   rK   argsr   formatsr   extra_indexlinkhostr   r   s                 r,   r   z&BuildEnvironment._install_requirements   s    N K'	
 ##%%66KK: 	 	Nf3^DDGKK>11#s;;;HHVG$9z::;;    &
 	&KKz!}-...)!""~ @ @0+>????@ KK%%%% 	0 	0DKK.////( 	2 	2DKK)401111' 	!KK    	+KK)***DL!!!/9...// 	7@$@@+	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   'HHHr   N)r/   r0   r1   __doc__r-   rx   r	   r   BaseExceptionr   r   r   r2   r   r
   r   r   staticmethodr   r   r3   r.   r,   rI   rI   O   sy       KK4 4 4 4l
 
 
 
*
04./
0 -(
0 '	
0
 

0 
0 
0 
0 $SM $	s5c?#SX-	. $  $  $  $D

 sm
 	
 
 

 
 
 
* 666 sm6 	6 6 
6 6 6 \6 6 6r.   rI   c            
           e Zd ZdZddZddZdeee                  dee         dee	         ddfd	Z
dd
Zdddee         dededdf
dZdS )NoOpBuildEnvironmentz0A no-op drop-in replacement for BuildEnvironmentr   Nc                     d S rN   r3   r+   s    r,   r-   zNoOpBuildEnvironment.__init__      r.   c                     d S rN   r3   r   s    r,   rx   zNoOpBuildEnvironment.__enter__   r   r.   ry   rz   r{   c                     d S rN   r3   )r+   ry   rz   r{   s       r,   r   zNoOpBuildEnvironment.__exit__#  s	     	r.   c                     d S rN   r3   r   s    r,   cleanupzNoOpBuildEnvironment.cleanup+  r   r.   r   r   r   r   rK   c                    t                      rN   )NotImplementedError)r+   r   r   r   rK   s        r,   r   z)NoOpBuildEnvironment.install_requirements.  s     "###r.   r   )r/   r0   r1   r   r-   rx   r	   r   r   r   r   r   r   r2   r   r3   r.   r,   r   r     s        ::      4./ -( '	
 
      $$ sm$ 	$ $ 
$ $ $ $ $ $r.   r   )7r   r   r'   r5   rE   r   rd   collectionsr   	sysconfigr   typesr   typingr   r   r   r	   r
   r   r   pip._vendor.certifir   "pip._vendor.packaging.requirementsr   pip._vendor.packaging.versionr   pipr   r7   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   r2   r=   rG   rI   r   r3   r.   r,   <module>r      sb     				   



  # # # # # #             L L L L L L L L L L L L L L L L L L % % % % % % : : : : : : 1 1 1 1 1 1 ( ( ( ( ( ( 3 3 3 3 3 3 O O O O O O O O O O K K K K K K K K : : : : : : E E E E E E E E A@@@@@@		8	$	$0 0 0 0 0 0 0 05# 5 5 5 5 =#c( = = = =(H H H H H H H HV$ $ $ $ $+ $ $ $ $ $r.   