
    q"h*              
          S 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JrJrJrJrJr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,  \RZ                  " \.5      r/S\0S\0S\\\0   \\0\04   4   4S jr1 " S S5      r2S\04S jr3S\\0   4S jr4 " S S5      r5 " S S\55      r6g)z:Build Environment used for isolation during sdist building    N)OrderedDict)TracebackType)TYPE_CHECKINGIterableListOptionalSetTupleTypeUnion)Version)__file__)open_spinner)get_platlibget_purelib
get_scheme)get_default_environmentget_environment)VERBOSE)get_requirement)call_subprocess)TempDirectorytempdir_kinds)PackageFinderabreturnc                     X:w  a  X4$ U 4$ N )r   r   s     I/var/www/html/env/lib/python3.13/site-packages/pip/_internal/build_env.py_dedupr"      s    VA6%!%    c                   &    \ rS rSrS\SS4S jrSrg)_Prefix"   pathr   Nc                     Xl         SU l        [        SUS9nUR                  U l        [        UR                  UR                  5      U l        g )NF )prefix)	r'   setupr   scriptsbin_dirr"   purelibplatliblib_dirs)selfr'   schemes      r!   __init___Prefix.__init__#   s;    	
Bt,~~v~~v~~>r#   )r-   r0   r'   r+   )__name__
__module____qualname____firstlineno__strr3   __static_attributes__r    r#   r!   r%   r%   "   s    ?S ?T ?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_dirr9   osfsdecode)sources    r!   get_runnable_piprE   +   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siterG   r   r   rB   r'   normcase)system_sitesr'   s     r!   _get_system_sitepackagesrL   ;   sW     t&''++- ${}5/;<|tBGGT"|<<<s   )A0c                       \ rS rSrSrSS jrSS jrS\\\	      S\\	   S	\\
   SS4S
 jrS\\   S\\\\\4      \\   4   4S jrSSS\\   S\S\SS4
S jr\S\SSS\\   S\S\SS4S j5       rSrg)BuildEnvironmentO   zACreates and manages an isolated environment to install build depsr   Nc                   ^ [        [        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-                  [.        R0                  " S
5      R3                  X R                  S95        S S S 5        g ! , (       d  f       g = f)NT)kindglobally_managedc              3      >#    U  H:  nU[        [        R                  R                  TR                  U5      5      4v   M<     g 7fr   )r%   rB   r'   join).0nametemp_dirs     r!   	<genexpr>,BuildEnvironment.__init__.<locals>.<genexpr>U   s5      %
- 7277<<t<=>-s   AA)normaloverlayrI   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)
                )rK   r0   )r   r   	BUILD_ENVr   	_prefixes	_bin_dirs	_lib_dirsreversedlistvaluesappendr-   extendr0   rL   rB   r'   rT   	_site_direxistsmkdiropenwritetextwrapdedentformat)r1   r*   rK   fprW   s       @r!   r3   BuildEnvironment.__init__R   s<    m&=&=PTU$ %
-%
 

 %'$&tDNN$9$9$;<=FNN!!&..1NN!!&//2 > 01hmmV<ww~~dnn--HHT^^$GGLL);<cG
HH2 &l^^&L5
 
 
s   9=F??
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
PYTHONPATHrr   1)rB   environget	_save_envr`   rf   splitpathseprg   updaterT   )r1   rV   r'   old_path
pythonpaths        r!   	__enter__BuildEnvironment.__enter__   s     C
B "**..t,,B

 ~~a >>&)KKrzz23nn%





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

w-&/

7#	 #9r#   reqsc                    [        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
ra   extrar)   z==z===T)prereleases)setrH   r   ra   r   r   markerevaluateget_distributionrV   add
isinstanceversionr   	specifiercontains)	r1   r   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#   finderr   requirementsprefix_as_stringrQ   c                    U R                   U   nUR                  (       a   eSUl        U(       d  g U R                  [        5       UUUUS9  g )NT)rQ   )r_   r+   _install_requirementsrE   )r1   r   r   r   rQ   r*   s         r!   install_requirements%BuildEnvironment.install_requirements   sR      01<<"" 	# 	
r#   pip_runnabler*   c                   [         R                  U 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R,                  (       a  UR                  S5        UR                  S5        UR                  U5        [/        SU 35       n[1        USU 3US 9  S S S 5        g ! , (       d  f       g = f)!Ninstallz--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)sys
executabler'   loggergetEffectiveLevelloggingDEBUGre   r   getattrformat_controlrf   replacerT   sorted
index_urls
find_linksproxytrusted_hostscustom_certclient_certallow_all_prereleasesprefer_binaryr   r   )r   r   r   r*   rQ   argsr   formatsr   extra_indexlinkhostr   s                r!   r   &BuildEnvironment._install_requirements   sC    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   J//
J=)r`   ra   r_   rx   rg   r   N)r5   r6   r7   r8   __doc__r3   r~   r   r   BaseExceptionr   r   r   r9   r
   r	   r   r   staticmethodr%   r   r:   r    r#   r!   rN   rN   O   s   K4l
*
04./
0 -(
0 '	
0
 

0 $SM $	s5c?#SX-	. $D

 sm
 	
 
 

* EEE smE 	E E 
E Er#   rN   c            
           \ rS rSrSrSS jrSS jrS\\\	      S\\	   S	\\
   SS4S
 jrSS jrSSS\\   S\S\SS4
S jrSrg)NoOpBuildEnvironmenti)  z0A no-op drop-in replacement for BuildEnvironmentr   Nc                     g r   r    r1   s    r!   r3   NoOpBuildEnvironment.__init__,      r#   c                     g r   r    r   s    r!   r~   NoOpBuildEnvironment.__enter__/  r   r#   r   r   r   c                     g r   r    )r1   r   r   r   s       r!   r   NoOpBuildEnvironment.__exit__2  s     	r#   c                     g r   r    r   s    r!   cleanupNoOpBuildEnvironment.cleanup:  r   r#   r   r   r   r   rQ   c                    [        5       er   )NotImplementedError)r1   r   r   r   rQ   s        r!   r   )NoOpBuildEnvironment.install_requirements=  s     "##r#   r    r   )r5   r6   r7   r8   r   r3   r~   r   r   r   r   r   r   r   r9   r   r:   r    r#   r!   r   r   )  s    :4./ -( '	
 
$$ sm$ 	$ $ 
$r#   r   )7r   r   rB   r<   rI   r   rl   collectionsr   typesr   typingr   r   r   r   r	   r
   r   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   	getLoggerr5   r   r9   r"   r%   rE   rL   rN   r   r    r#   r!   <module>r      s    @  	   
  #  S S S 1 ( 3 H H K / 9 : E@			8	$&c &c &eE#Jc3h$?@ &? ?5# 5 =#c( =(W Wt$+ $r#   