+
    Bi.-                       R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHtHt ^ RIHtHt ^ RI H!t! ^ RI"H#t# ^ RI$H%t% ^ RI&H't'H(t( ]'       d   ^ RI)H*t* ^ RI+H,t, ]PZ                  ! ].4      t/R R lt0 ! R R4      t1R R lt2R R lt3 ! R R]4      t4 ! R R4      t5 ! R R4      t6 ! R  R!]64      t7R# )"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               $    V ^8  d   QhRRRRRR/# )   astrbreturnztuple[str] | tuple[str, str] )formats   "</usr/lib/python3.14/site-packages/pip/_internal/build_env.py__annotate__r    "   s"     & &c &c &: &    c                    W8w  d   W3# V 3# Nr   )r   r   s   &&r   _dedupr$   "   s    VA6%!%r!   c                  "    ] tR t^&tR R ltRtR# )_Prefixc                    V ^8  d   QhRRRR/# )r   pathr   r   Noner   )r   s   "r   r    _Prefix.__annotate__'   s     ? ?S ?T ?r!   c                	    Wn         R V n        \        RVR7      pVP                  V n        \        VP                  VP                  4      V n        R# )F )prefixN)	r(   setupr   scriptsbin_dirr$   purelibplatliblib_dirs)selfr(   schemes   && r   __init___Prefix.__init__'   s;    	
Bt,~~v~~v~~>r!   )r0   r3   r(   r.   N)__name__
__module____qualname____firstlineno__r6   __static_attributes__r   r!   r   r&   r&   &   s    ? ?r!   r&   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r    r    /   s     5 5# 5r!   c                     \         P                  ! \        4      P                  4       P                  p V P                  4       '       g   \        V 4      # \        P                  ! V R,          4      # )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   osfsdecode)sources    r   get_runnable_piprH   /   sM     \\,'//188F==?? 6{;;v 3344r!   c                   V ^8  d   QhRR/# )r   r   zset[str]r   )r   s   "r   r    r    ?   s     = =( =r!   c                     \        \        R4      '       d   \        P                  ! 4       p M\        4       \	        4       .p V  Uu0 uF"  p\
        P                  P                  V4      kK$  	  up# u upi )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siterK   r   r   rE   r(   normcase)system_sitesr(   s     r   _get_system_sitepackagesrP   ?   sW     t&''++- ${}5/;<|tBGGT"|<<<s   (A0c                  &    ] tR t^StRtR R ltRtR# )BuildEnvironmentInstallerzQ
Interface for installing build dependencies into an isolated build
environment.
c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r   requirementsIterable[str]r-   r&   kindr   for_reqInstallRequirement | Noner   r)   r   )r   s   "r   r    &BuildEnvironmentInstaller.__annotate__Y   s<      # 
  + 
r!   c               	    R # r#   r   )r4   rU   r-   rW   rX   s   &&&$$r   install!BuildEnvironmentInstaller.installY   s     r!   r   N)r8   r9   r:   r;   __doc__r\   r<   r   r!   r   rR   rR   S   s    
 r!   rR   c                  2    ] tR t^ctRtR R ltR R ltRtR# )#SubprocessBuildEnvironmentInstallerz<
Install build dependencies by calling pip in a subprocess.
c                    V ^8  d   QhRRRR/# )r   finderr   r   r)   r   )r   s   "r   r    0SubprocessBuildEnvironmentInstaller.__annotate__h   s      }  r!   c                	    Wn         R # r#   rb   )r4   rb   s   &&r   r6   ,SubprocessBuildEnvironmentInstaller.__init__h   s    r!   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# rT   r   )r   s   "r   r    rc   k   sC     F F#F F
 F +F 
Fr!   c               	   V P                   p\        P                  \        4       R RRRVP                  RRRRR.p\
        P                  4       \        P                  8:  d   VP                  R	4       M.\
        P                  4       \        8:  d   VP                  R
4       R Ff  p\        VP                  V4      pTP                  RVP                  RR4      ,           RP                  \!        T;'       g    R04      4      34       Kh  	  VP"                  p	V	'       d?   VP                  RV	^ ,          .4       V	R,           F  p
VP                  RV
.4       K  	  MVP                  R4       VP$                   F  pVP                  RV.4       K  	  VP&                  '       d   VP                  RVP&                  .4       VP(                   F  pVP                  RV.4       K  	  VP*                  '       d   VP                  RVP*                  .4       VP,                  '       d   VP                  RVP,                  .4       VP.                  '       d   VP                  R4       VP0                  '       d   VP                  R4       VP                  R4       VP                  V4       \3        RV 24      ;_uu_ 4       p\5        VRV 2VR7       RRR4       R#   + '       g   i     R# ; i) r\   z--ignore-installedz	--no-userz--prefixz--no-warn-script-locationz--disable-pip-version-checkz--no-compilez--targetr,   z-vvz-vz--_-,z:none:z-i:   NNz--extra-index-urlz
--no-indexz--find-linksz--proxyz--trusted-hostz--certz--client-certz--prez--prefer-binaryzInstalling zpip subprocess to install )command_descspinnerN)	no_binaryonly_binary)rb   sys
executablerH   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   )r4   rU   r-   rW   rX   rb   argsry   formatsr~   extra_indexlinkhostrn   s   &&&$$         r   r\   +SubprocessBuildEnvironmentInstaller.installk   sf    NN KK')  #
& ##%6KK%%'72KK:Nf33^DGKK>11#s;;HHVG$9$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$$K5	re   N)r8   r9   r:   r;   r^   r6   r\   r<   r   r!   r   r`   r`   c   s    F Fr!   r`   c                  ^    ] tR t^tRtR R ltR R ltR R ltR R	 ltR
R/R R llt	Rt
R# )BuildEnvironmentzACreates and manages an isolated environment to install build depsc                    V ^8  d   QhRRRR/# )r   	installerrR   r   r)   r   )r   s   "r   r    BuildEnvironment.__annotate__   s     5 5"; 5 5r!   c           	     	  a Wn         \        \        P                  R R7      o\	        V3R lR 4       4      V n        . V n        . V n        \        \        V P
                  P                  4       4      4       FM  pV P                  P                  VP                  4       V P                  P                  VP                  4       KO  	  \        4       p\         P"                  P%                  SP"                  R4      V n        \         P"                  P)                  V P&                  4      '       g!   \         P*                  ! V P&                  4       \-        \         P"                  P%                  V P&                  R4      RRR7      ;_uu_ 4       pVP/                  \0        P2                  ! R4      P5                  W0P                  R	7      4       R
R
R
4       R
#   + '       g   i     R
# ; i)T)rW   globally_managedc              3     <"   T F:  pV\        \        P                  P                  SP                  V4      4      3x  K<  	  R # 5ir#   )r&   rE   r(   r|   ).0nametemp_dirs   & r   	<genexpr>,BuildEnvironment.__init__.<locals>.<genexpr>   s5      %
- 7277<<t<=>-s   AArM   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)
                )rO   r3   N)normaloverlay)r   r   r   	BUILD_ENVr   	_prefixes	_bin_dirs	_lib_dirsreversedlistvaluesrw   r0   rz   r3   rP   rE   r(   r|   	_site_direxistsmkdiropenwritetextwrapdedentr   )r4   r   r-   rO   fpr   s   &&   @r   r6   BuildEnvironment.__init__   sK   " m&=&=PTU$ %
-%
 

 %'$&tDNN$9$9$;<=FNN!!&..1NN!!&//2 > 01hmmV<ww~~dnn--HHT^^$GGLL);<cG
 
HH2 &l^^&L5
 
 
 
s   A GG)	c                   V ^8  d   QhRR/# r   r   r)   r   )r   s   "r   r    r      s     
 
4 
r!   c           
     	   R Uu/ uF$  pV\         P                  P                  VR4      bK&  	  upV n        V P                  R,          pV P                  R ,          pV'       d/   VP                  VP                  \         P                  4      4       V P                  .p\         P                  P                  R \         P                  P                  V4      RRR\         P                  P                  V4      /4       R# u upi )PATHPYTHONNOUSERSITE
PYTHONPATHN:NNN1)r   r   r   )rE   environget	_save_envr   rz   splitpathsepr   updater|   )r4   r   r(   old_path
pythonpaths   &    r   	__enter__BuildEnvironment.__enter__   s     C
B "**..t,,B

 ~~a >>&)KKrzz23nn%





-"Cbjjooj9	

s   *Dc               (    V ^8  d   QhRRRRRRRR/# 	r   exc_typeztype[BaseException] | Noneexc_valzBaseException | Noneexc_tbzTracebackType | Noner   r)   r   )r   s   "r   r    r     s2     
0 
0,
0 &
0 %	
0
 

0r!   c                	    V P                   P                  4        F>  w  rEVf#   \        P                  P	                  VR 4       K+  V\        P                  V&   K@  	  R # r#   )r   itemsrE   r   pop)r4   r   r   r   varname	old_values   &&&&  r   __exit__BuildEnvironment.__exit__  sD     #'.."6"6"8G 

w-&/

7#	 #9r!   c                    V ^8  d   QhRRRR/# )r   reqsrV   r   z%tuple[set[tuple[str, str]], set[str]]r   )r   s   "r   r    r     s      $  $! $	. $r!   c                   \        4       p\        4       pV'       EdI   \        V R4      '       d   \        V P                  4      M	\	        4       pV EF  p\        V4      pVP                  e&   VP                  P                  RR/4      '       g   KB  VP                  VP                  4      pV'       g   VP                  V4       Kx  \        VP                  \        4      '       d   VP                   RVP                   2pMVP                   RVP                   2pVP                  P                  VP                  RR7      '       d   K  VP                  W34       EK  	  W23# )zvReturn 2 sets:
- conflicting requirements: set of (installed, wanted) reqs tuples
- missing requirements: set of reqs
r   extrar,   z==z===T)prereleases)setrL   r   r   r   r   markerevaluateget_distributionr   add
isinstanceversionr   	specifiercontains)	r4   r   missingconflictingenvreq_strreqdistinstalled_req_strs	   &&       r   check_requirements#BuildEnvironment.check_requirements  s    %e4 4--  /,. 
  %g. ::)#**2E2EwPRm2T2T++CHH5KK(dllG44+.88*Bt||n(E%+.88*C~(F%}}--dll-MMOO%6$@A  " ##r!   rX   Nc          
     ,    V ^8  d   QhRRRRRRRRRR	/# 
r   rU   rV   prefix_as_stringr   rW   rX   rY   r   r)   r   )r   s   "r   r    r   1  sC     Q Q#Q Q
 Q +Q 
Qr!   c               	    V P                   V,          pVP                  '       d   Q hR Vn        V'       g   R# V P                  P                  WW4R7       R# )TN)rW   rX   )r   r.   r   r\   )r4   rU   r   rW   rX   r-   s   &&&$$ r   install_requirements%BuildEnvironment.install_requirements1  sF      01<<<|$Pr!   )r   r   r   r   r   r   )r8   r9   r:   r;   r^   r6   r   r   r   r   r<   r   r!   r   r   r      s2    K5n
*
0 $DQ .2Q Qr!   r   c                  ^    ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRR/R R llt	Rt
R# )NoOpBuildEnvironmentiA  z0A no-op drop-in replacement for BuildEnvironmentc                   V ^8  d   QhRR/# r   r   )r   s   "r   r    !NoOpBuildEnvironment.__annotate__D  s      $ r!   c                	    R # r#   r   r4   s   &r   r6   NoOpBuildEnvironment.__init__D      r!   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r    r   G  s      4 r!   c                	    R # r#   r   r   s   &r   r   NoOpBuildEnvironment.__enter__G  r   r!   c               (    V ^8  d   QhRRRRRRRR/# r   r   )r   s   "r   r    r   J  s2      , & %	
 
r!   c                	    R # r#   r   )r4   r   r   r   s   &&&&r   r   NoOpBuildEnvironment.__exit__J  s     	r!   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r    r   R  s       r!   c                	    R # r#   r   r   s   &r   cleanupNoOpBuildEnvironment.cleanupR  r   r!   rX   Nc          
     ,    V ^8  d   QhRRRRRRRRRR	/# r   r   )r   s   "r   r    r   U  s<     $ $#$ $
 $ +$ 
$r!   c               	    \        4       hr#   )NotImplementedError)r4   rU   r   rW   rX   s   &&&$$r   r   )NoOpBuildEnvironment.install_requirementsU  s     "##r!   r   )r8   r9   r:   r;   r^   r6   r   r   r   r   r<   r   r!   r   r   r   A  s-    :$ .2$ $r!   r   )8r^   
__future__r   ru   rE   r?   rM   rq   r   collectionsr   collections.abcr   typesr   typingr   r   pip._vendor.packaging.versionr   pipr	   rA   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   	getLoggerr8   rs   r$   r&   rH   rP   rR   r`   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!   