
    4Քh.-                       S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
  SSKJr  SSKJr  SSKJrJr  SSKJr  SS	KJr  SS
KJr  SSKJrJrJr  SSKJrJr  SSK J!r!  SSK"J#r#  SSK$J%r%  SSK&J'r'J(r(  \(       a  SSK)J*r*  SSK+J,r,  \RZ                  " \.5      r/S S jr0 " S S5      r1S!S jr2S"S jr3 " S S\5      r4 " S S5      r5 " S S5      r6 " S S\65      r7g)#z:Build Environment used for isolation during sdist building    )annotationsN)OrderedDict)Iterable)TracebackType)TYPE_CHECKINGProtocol)Version)__file__)open_spinner)get_platlibget_purelib
get_scheme)get_default_environmentget_environment)VERBOSE)get_requirement)call_subprocess)TempDirectorytempdir_kinds)PackageFinder)InstallRequirementc                    X:w  a  X4$ U 4$ N )abs     O/var/www/auris/envauris/lib/python3.13/site-packages/pip/_internal/build_env.py_dedupr   "   s    VA6%!%    c                      \ rS rSrSS jrSrg)_Prefix&   c                    Xl         SU l        [        SUS9nUR                  U l        [        UR                  UR                  5      U l        g )NF )prefix)	pathsetupr   scriptsbin_dirr   purelibplatliblib_dirs)selfr&   schemes      r   __init___Prefix.__init__'   s;    	
Bt,~~v~~v~~>r   )r)   r,   r&   r'   N)r&   strreturnNone)__name__
__module____qualname____firstlineno__r/   __static_attributes__r   r   r   r!   r!   &   s    ?r   r!   c                     [         R                  " [        5      R                  5       R                  n U R                  5       (       d  [        U 5      $ [        R                  " U S-  5      $ )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_dirr1   osfsdecode)sources    r   get_runnable_piprC   /   sM     \\,'//188F==?? 6{;;v 3344r   c                     [        [        S5      (       a  [        R                  " 5       n O[        5       [	        5       /n U  Vs1 s H"  n[
        R                  R                  U5      iM$     sn$ s  snf )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.
getsitepackages)hasattrsiterE   r   r   r@   r&   normcase)system_sitesr&   s     r   _get_system_sitepackagesrJ   ?   sW     t&''++- ${}5/;<|tBGGT"|<<<s   )A0c                  6    \ rS rSrSr          SS jrSrg)BuildEnvironmentInstallerS   zQ
Interface for installing build dependencies into an isolated build
environment.
c                   g r   r   )r-   requirementsr%   kindfor_reqs        r   install!BuildEnvironmentInstaller.installY   s     r   r   N
rO   Iterable[str]r%   r!   rP   r1   rQ   InstallRequirement | Noner2   r3   )r4   r5   r6   r7   __doc__rR   r8   r   r   r   rL   rL   S   s<    
# 
  + 
r   rL   c                  @    \ rS rSrSrSS jr          SS jrSrg)	#SubprocessBuildEnvironmentInstallerc   z<
Install build dependencies by calling pip in a subprocess.
c                    Xl         g r   finder)r-   r]   s     r   r/   ,SubprocessBuildEnvironmentInstaller.__init__h   s    r   c                  U R                   n[        R                  [        5       SSSSUR                  SSSSS	/n[
        R                  5       [        R                  ::  a  UR                  S
5        O-[
        R                  5       [        ::  a  UR                  S5        S Ha  n[        UR                  U5      nUR                  SUR                  SS5      -   SR                  [!        U=(       d    S15      5      45        Mc     UR"                  n	U	(       a6  UR                  SU	S   /5        U	SS   H  n
UR                  SU
/5        M     OUR                  S5        UR$                   H  nUR                  SU/5        M     UR&                  (       a  UR                  SUR&                  /5        UR(                   H  nUR                  SU/5        M     UR*                  (       a  UR                  SUR*                  /5        UR,                  (       a  UR                  SUR,                  /5        UR.                  (       a  UR                  S5        UR0                  (       a  UR                  S5        UR                  S5        UR                  U5        [3        SU 35       n[5        USU 3US 9  S S S 5        g ! , (       d  f       g = f)!NrR   z--ignore-installedz	--no-userz--prefixz--no-warn-script-locationz--disable-pip-version-checkz--no-compilez--targetr$   z-vvz-v)	no_binaryonly_binaryz--_-,z:none:z-ir      z--extra-index-urlz
--no-indexz--find-linksz--proxyz--trusted-hostz--certz--client-certz--prez--prefer-binaryzInstalling zpip subprocess to install )command_descspinner)r]   sys
executablerC   r&   loggergetEffectiveLevelloggingDEBUGappendr   getattrformat_controlextendreplacejoinsorted
index_urls
find_linksproxytrusted_hostscustom_certclient_certallow_all_prereleasesprefer_binaryr   r   )r-   rO   r%   rP   rQ   r]   argsrp   formatsru   extra_indexlinkhostrg   s                 r   rR   +SubprocessBuildEnvironmentInstaller.installk   sO    NN KK')  #
& ##%6KK%%'72KK:Nf33^DGKK>11#s;;HHVG$9z:; ; &&
KKz!}-.)!"~0+>?  . KK%%%DKK./ & <<KKFLL12((DKK)401 )KK6#5#567KK&*<*<=>''KK KK)*DL!Kv./79$@ 0//s   +K
Kr\   N)r]   r   r2   r3   rT   )r4   r5   r6   r7   rW   r/   rR   r8   r   r   r   rY   rY   c   sG    F#F F
 F +F 
Fr   rY   c                  |    \ rS rSrSrSS jrSS jr        SS jr    SS jrSS.         SS	 jjr	S
r
g)BuildEnvironment   zACreates and manages an isolated environment to install build depsc                  ^ Xl         [        [        R                  SS9m[	        U4S jS 5       5      U l        / U l        / U l        [        [        U R
                  R                  5       5      5       HM  nU R                  R                  UR                  5        U R                  R                  UR                  5        MO     [        5       n[         R"                  R%                  TR"                  S5      U l        [         R"                  R)                  U R&                  5      (       d   [         R*                  " U R&                  5        [-        [         R"                  R%                  U R&                  S5      SSS	9 nUR/                  [0        R2                  " S
5      R5                  X0R                  S95        S S S 5        g ! , (       d  f       g = f)NT)rP   globally_managedc              3     >#    U  H:  nU[        [        R                  R                  TR                  U5      5      4v   M<     g 7fr   )r!   r@   r&   rs   ).0nametemp_dirs     r   	<genexpr>,BuildEnvironment.__init__.<locals>.<genexpr>   s5      %
- 7277<<t<=>-s   AA)normaloverlayrG   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)
                )rI   r,   )	installerr   r   	BUILD_ENVr   	_prefixes	_bin_dirs	_lib_dirsreversedlistvaluesrn   r)   rq   r,   rJ   r@   r&   rs   	_site_direxistsmkdiropenwritetextwrapdedentformat)r-   r   r%   rI   fpr   s        @r   r/   BuildEnvironment.__init__   sA   " m&=&=PTU$ %
-%
 

 %'$&tDNN$9$9$;<=FNN!!&..1NN!!&//2 > 01hmmV<ww~~dnn--HHT^^$GGLL);<cG
HH2 &l^^&L5
 
 
s   ?=G
Gc                   S Vs0 s H$  nU[         R                  R                  US 5      _M&     snU l        U R                  S S  nU R                  S   nU(       a.  UR                  UR                  [         R                  5      5        U R                  /n[         R                  R                  [         R                  R                  U5      S[         R                  R                  U5      S.5        g s  snf )N)PATHPYTHONNOUSERSITE
PYTHONPATHr   1)r@   environget	_save_envr   rq   splitpathsepr   updaters   )r-   r   r&   old_path
pythonpaths        r   	__enter__BuildEnvironment.__enter__   s     C
B "**..t,,B

 ~~a >>&)KKrzz23nn%





-$' jjooj9	

s   +C6c                    U R                   R                  5        H=  u  pEUc"  [        R                  R	                  US 5        M*  U[        R                  U'   M?     g r   )r   itemsr@   r   pop)r-   exc_typeexc_valexc_tbvarname	old_values         r   __exit__BuildEnvironment.__exit__  sD     #'.."6"6"8G 

w-&/

7#	 #9r   c                   [        5       n[        5       nU(       Ga?  [        U S5      (       a  [        U R                  5      O	[	        5       nU GH  n[        U5      nUR                  b$  UR                  R                  SS05      (       d  M@  UR                  UR                  5      nU(       d  UR                  U5        Mu  [        UR                  [        5      (       a  UR                   SUR                   3nOUR                   SUR                   3nUR                  R                  UR                  SS9(       a  M  UR                  X45        GM     X24$ )zvReturn 2 sets:
- conflicting requirements: set of (installed, wanted) reqs tuples
- missing requirements: set of reqs
r   extrar$   z==z===T)prereleases)setrF   r   r   r   r   markerevaluateget_distributionr   add
isinstanceversionr	   	specifiercontains)	r-   reqsmissingconflictingenvreq_strreqdistinstalled_req_strs	            r   check_requirements#BuildEnvironment.check_requirements  s    %e 4--  /,. 
  %g. ::)#**2E2EwPRm2T2T++CHH5KK(dllG44+.88*Bt||n(E%+.88*C~(F%}}--dll-MMOO%6$@A  " ##r   NrQ   c                   U R                   U   nUR                  (       a   eSUl        U(       d  g U R                  R                  XX4S9  g )NT)rP   rQ   )r   r'   r   rR   )r-   rO   prefix_as_stringrP   rQ   r%   s         r   install_requirements%BuildEnvironment.install_requirements1  sD      01<<|$Pr   )r   r   r   r   r   r   )r   rL   r2   r3   r2   r3   r   ztype[BaseException] | Noner   zBaseException | Noner   zTracebackType | Noner2   r3   )r   rU   r2   z%tuple[set[tuple[str, str]], set[str]]
rO   rU   r   r1   rP   r1   rQ   rV   r2   r3   )r4   r5   r6   r7   rW   r/   r   r   r   r   r8   r   r   r   r   r      s    K5n
*
0,
0 &
0 %	
0
 

0 $! $	. $P .2Q#Q Q
 Q +Q 
Q Qr   r   c                  t    \ rS rSrSrSS jrSS jr        SS jrSS jrSS.         SS	 jjr	S
r
g)NoOpBuildEnvironmentiA  z0A no-op drop-in replacement for BuildEnvironmentc                    g r   r   r-   s    r   r/   NoOpBuildEnvironment.__init__D      r   c                    g r   r   r   s    r   r   NoOpBuildEnvironment.__enter__G  r   r   c                    g r   r   )r-   r   r   r   s       r   r   NoOpBuildEnvironment.__exit__J  s     	r   c                    g r   r   r   s    r   cleanupNoOpBuildEnvironment.cleanupR  r   r   Nr   c                   [        5       er   )NotImplementedError)r-   rO   r   rP   rQ   s        r   r   )NoOpBuildEnvironment.install_requirementsU  s     "##r   r   r   r   r   )r4   r5   r6   r7   rW   r/   r   r   r   r   r8   r   r   r   r   r   A  s~    :, & %	
 
 .2$#$ $
 $ +$ 
$ $r   r   )r   r1   r   r1   r2   ztuple[str] | tuple[str, str])r2   r1   )r2   zset[str])8rW   
__future__r   rl   r@   r:   rG   rh   r   collectionsr   collections.abcr   typesr   typingr   r   pip._vendor.packaging.versionr	   pipr
   r<   pip._internal.cli.spinnersr   pip._internal.locationsr   r   r   pip._internal.metadatar   r   pip._internal.utils.loggingr   pip._internal.utils.packagingr   pip._internal.utils.subprocessr   pip._internal.utils.temp_dirr   r   "pip._internal.index.package_finderr   pip._internal.req.req_installr   	getLoggerr4   rj   r   r!   rC   rJ   rL   rY   r   r   r   r   r   <module>r      s    @ "  	   
  # $  * 1 ( 3 H H K / 9 : E@@			8	$&? ?5 =(  N NbJQ JQZ$+ $r   