+
    '(j6              	        a  0 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
Ht ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RIHtHtHtHtHtHt . R5Ot]P8                  ! ]4      t]! ]R	R
4      t R]!R&   R R lt"]"! 4       t#]#'       g   ^RIH$t$ ]#'       d   ]PJ                  t&M]PN                  t&R R lt(R R lt)]PT                  R R l4       t+]PT                  R R l4       t,]PT                  R R l4       t-]PT                  R R l4       t.]PT                  R R l4       t/]PT                  R R l4       t0R  R! lt1]PT                  R"R#R$RR%RR&R/R' R( ll4       t2R6R) R* llt3R+ R, lt4R- R. lt5R/ R0 lt6R1 R2 lt7R3 R4 lt8R# )7    )annotationsN)SCHEME_KEYSScheme)WINDOWS)
deprecated)running_under_virtualenv)
_sysconfig)USER_CACHE_DIRget_major_minor_versionget_src_prefixis_osx_frameworksite_packages	user_site
platlibdirlibstr_PLATLIBDIRc                   V ^8  d   QhRR/#    returnbool )formats   "U/home/ubuntu/cf-venv/lib/python3.14/site-packages/pip/_internal/locations/__init__.py__annotate__r   -   s     @ @t @    c                 6    \        \        \        RR4      4      # )aL  This function determines the value of _USE_SYSCONFIG.

By default, pip uses sysconfig.
But Python distributors can override this decision by setting:
    sysconfig._PIP_USE_SYSCONFIG = True / False
Rationale in https://github.com/pypa/pip/issues/10647

This is a function for testability, but should be constant during any one
run.
_PIP_USE_SYSCONFIGT)r   getattr	sysconfigr   r   r   _should_use_sysconfigr"   -   s     	#7>??r   
_distutilsc                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   K   s     , ,t ,r   c                 ^    ^ RI Hp   V R,          R,          pVR8H  #   \         d     R# i ; i)zkThe resolution to bpo-44860 will change this incorrect platlib.

See <https://bugs.python.org/issue44860>.
INSTALL_SCHEMES	unix_userplatlibFz	$usersite)distutils.command.installr(   KeyError)r(   unix_user_platlibs     r   _looks_like_bpo_44860r.   K   s=    
 :+K8C ++  s    ,,c                    V ^8  d   QhRRRR/# )r   schemezdict[str, str]r   r   r   )r   s   "r   r   r   Y   s     J J J4 Jr   c                    V R ,          pRV9   d   VP                  RR\         R24      pRV9  d   R# VP                  RR4      pVP                  RR4      V R,          8H  # )	r*   z/$platlibdir///lib64/Fz/lib/z
$platbase/z$base/purelib)replacer   )r0   r*   	unpatcheds   &  r   +_looks_like_red_hat_patched_platlib_purelibr7   Y   se    YG'!///Q{m13EF	73I\84y8IIIr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   d   s       r   c                    a  ^ RI Ho  \        ;QJ d    V 3R lR 4       F  '       d   K   R# 	  R# ! V 3R lR 4       4      # )zRed Hat patches platlib in unix_prefix and unix_home, but not purelib.

This is the only way I can see to tell a Red Hat-patched Python.
r'   c              3  b   <"   T F$  pVS9   ;'       d    \        SV,          4      x  K&  	  R # 5iN)r7   ).0kr(   s   & r   	<genexpr>*_looks_like_red_hat_lib.<locals>.<genexpr>k   s>       .A 	
_ 	L 	L78JK	L-s   //FT)unix_prefix	unix_home)r+   r(   allr'   s   @r   _looks_like_red_hat_librC   c   sG     :3  .33 3 3  .  r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   s   s     O O4 Or   c                 2    ^ RI Hp  RV 9   ;'       d    RV 9   # )z#Debian adds two additional schemes.r'   
deb_system
unix_local)r+   r(   r'   s    r   _looks_like_debian_schemerH   r   s     :?*NN|/NNr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   {   s      D r   c                 X   ^ RI Hp  ^ RIHp V ! V! 4       4      pVP	                  4        VP
                  \        P                  P                  \        P
                  4       R28H  ;'       d>    VP                  \        P                  P                  \        P                  4       R28H  # )aH  Red Hat patches ``sys.prefix`` and ``sys.exec_prefix``.

Red Hat's ``00251-change-user-install-location.patch`` changes the install
command's ``prefix`` and ``exec_prefix`` to append ``"/local"``. This is
(fortunately?) done quite unconditionally, so we create a default command
object without any configuration to detect this.
)install)Distributionz/local)r+   rK   distutils.distrL   finalize_optionsexec_prefixospathnormpathsysprefix)rK   rL   cmds      r   _looks_like_red_hat_schemerV   z   s     2+
,.
!Cbgg..s?@GG 	B 	BJJRWW--cjj9:&AAr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     H Hd Hr   c                     \         f   R#  \        P                  ! RRR7      p RT R,          9   ;'       d
    R\         9  #   \         d     R# i ; i)zSlackware patches sysconfig but fails to patch distutils and site.

Slackware changes sysconfig's user scheme to use ``"lib64"`` for the lib
path, but does not do the same to the site module.
F
posix_user)r0   expandr3   r4   )r   r!   	get_pathsr,   pathss    r   _looks_like_slackware_schemer^      sW     ##<F i((GGYi-GG  s   A AAc                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s       r   c                    a  \         P                  ! RRR7      o \        ;QJ d&    R V 3R lR 4        4       F  '       d   K   R# 	  R# ! R V 3R lR 4        4       4      # )aq  MSYS2 patches distutils and sysconfig to use a UNIX-like scheme.

However, MSYS2 incorrectly patches sysconfig ``nt`` scheme. The fix is
likely going to be included in their 3.10 release, so we ignore the warning.
See msys2/MINGW-packages#9319.

MSYS2 MINGW's patch uses lowercase ``"lib"`` instead of the usual uppercase,
and is missing the final ``"site-packages"``.
ntF)rZ   c              3     "   T F5  pR V9  ;'       d$    RV9   ;'       d    VP                  R4      '       * x  K7  	  R# 5i)Libr   zsite-packagesN)endswith)r<   ps   & r   r>   1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>   s>      ?A 	QII5A:IIajj.I*II?s   ???c              3  6   <"   T F  pSV,          x  K  	  R # 5ir;   r   )r<   keyr]   s   & r   r>   rf      s     ?(>%**(>s   Tr*   r4   )r!   r[   rB   r\   s   @r   _looks_like_msys2_mingw_schemerj      s^     U3E3 ?(>?33 3 3 ?(>?  r   c               (    V ^8  d   QhRRRRRRRR/# )r   oldpathlib.Pathnewrh   r   r   Noner   )r   s   "r   r   r      s.     C C, C\ C3 C4 Cr   c               F    R pRp\         P                  \        WBW0V4       R# )z(https://github.com/pypa/pip/issues/10151zSValue for %s does not match. Please report this to <%s>
distutils: %s
sysconfig: %sN)loggerlog_MISMATCH_LEVEL)rl   rn   rh   	issue_urlmessages   &&$  r   _warn_mismatchedrv      s%    :I	 
 JJicBr   c               (    V ^8  d   QhRRRRRRRR/# )r   rl   rm   rn   rh   r   r   r   r   )r   s   "r   r   r      s(      < l C D r   c               0    W8X  d   R # \        WVR7       R# )Frh   T)rv   )rl   rn   rh   s   &&$r   _warn_if_mismatchrz      s    
zS3'r   userFhomerootrT   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r   r{   r   r|   
str | Noner}   rT   r   ro   r   )r   s   "r   r   r      sC     L L
L L 	L
 L 
Lr   c                d    . ROp\         P                  \        RP                  V4      WW#4       R# )Additional context:
N)r   z	user = %rz	home = %rz	root = %rzprefix = %r)rq   rr   rs   join)r{   r|   r}   rT   partss   $$$$ r   _log_contextr      s&    E JJ		% 0$dKr   c               4    V ^8  d   QhRRRRRRRRRRR	RR
R/# )r   	dist_namer   r{   r   r|   r   r}   isolatedrT   r   r   r   )r   s   "r   r   r      sW     c cc
c c 	c
 c c cr   c           
     8	  aa \         P                  ! V VVVVVR 7      p\        '       d   V# \        P                  ! V VVVVVR 7      o. p\         EF  p\
        P                  ! \        SV4      4      p	\
        P                  ! \        Wh4      4      p
W8X  d   KK  \        P                  P                  R8H  ;'       dy    VRJ;'       dm    VR9   ;'       d`    V	P                  V
P                  8H  ;'       d?    V	P                  P                  R4      ;'       d    V
P                  P                  R4      pV'       d   K  T;'       dp    \        4       ;'       d^    VR8H  ;'       dQ    V	P                  P                  V
P                  8H  ;'       d&    V	P                  P                  P                  R4      pV'       d   EKv  VR8X  d   \        4       '       d   EK  T;'       d<    VR8H  ;'       d/    \        '       * ;'       d    \         R8g  ;'       d    \#        4       pV'       d   EK  T;'       d+    VR9   ;'       d    \        '       * ;'       d    \%        4       pV'       d   EK  T;'       g    T;'       g    T;'       g    \'        4       '       * ;'       d    V	P(                  R,          R8H  ;'       d    \+        V
P(                  4      ^8  ;'       dy    V
P(                  ^,          R8H  ;'       d[    \+        V
P(                  4      ^8  ;'       g    V
P(                  ^,          R	8g  ;'       d    \-        4       ;'       g    \/        4       pV'       d   EK  \        ;'       d    VR9   ;'       d    \1        4       pV'       d   EKE  \2        P4                  ! R
R7      ;'       d    \        '       * ;'       d    VR9   pV'       d   EK  VP7                  WRV 234       EK  	  V'       g   S# \        P8                  ! V VVVVVR
R7      o\:        ;QJ d$    VV3R l\         4       F  '       g   K   R
M	  RM! VV3R l\         4       4      '       d   \=        RRRR7       S# V F  w  rp\?        WVR7       K  	  \A        WW5R7       S# ))r{   r|   r}   r   rT   pypyNr*   pythonheadersr   :      NusrlocalT)
check_homezscheme.)ignore_config_filesc              3  P   <"   T F  pSV,          \        SV4      8g  x  K  	  R # 5ir;   )r    )r<   r=   default_oldrl   s   & r   r>   get_scheme.<locals>.<genexpr>f  s      
Bk;q>WS!_,ks   #&FzConfiguring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621)reasonreplacementgone_inry   )r{   r|   r}   rT   ri   )r   r   )r   includeplatinclude)!r	   
get_scheme_USE_SYSCONFIGr$   r   pathlibPathr    rS   implementationnameparent
startswithr   rC   r   r   r.   r^   r   r   lenrV   rH   rj   r!   is_python_buildappenddistutils_schemeanyr   rv   r   )r   r{   r|   r}   r   rT   rn   warning_contextsr=   old_vnew_vskip_pypy_special_case$skip_osx_framework_user_special_caseskip_bpo_44860skip_slackware_user_schemeskip_linux_system_special_caseskip_msys2_mingw_bugskip_cpython_buildrh   r   rl   s   &&&&&&             @@r   r   r      sb    

C ~



C [WS!_-WS_-> ##v- . .D . .++. . ,. . 

%%h/	. .
 

%%f- 	 "  7 7 "7 7Y7 7 ##u||37 7 !!,,X6 	- 0 	>577  ( (Y( (( ( u$( ( &' 	 
  / /++/ // / -.	 	# & EEEEEE+C+EF N NC $44N NEKK 1$N N A%'N N U[[!A%BBQ7)B	N N
 ,-LL1J1L 	' *
 XX33XX8V8X 	   %%6 ; ;; ;:: 	
 } =>G J 

 -- K s
Bk
Bsss
Bk
BBBL
 		
 
 .c3/ .dD@Jr   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   {  s       r   c                    \         P                  ! 4       p \        '       d   V # \        P                  ! 4       p\	        \
        P                  ! V4      \
        P                  ! V 4      R R7      '       d   \        4        V# )
bin_prefixry   )r	   get_bin_prefixr   r$   rz   r   r   r   rn   rl   s     r   r   r   {  sS    

#
#
%C~


#
#
%Cc*GLL,=<PPJr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s     8 8c 8r   c                 F    \         P                  ! R RR7      P                  # ) T)r{   )r	   r   scriptsr   r   r   get_bin_userr     s      $/777r   c                    V ^8  d   QhRRRR/# )r   valuer   r   r   r   )r   s   "r   r   r     s        r   c                <    \        4       '       g   R# V R8X  d   R# R# )a  Check if the value is Debian's APT-controlled dist-packages.

Debian's ``distutils.sysconfig.get_python_lib()`` implementation returns the
default package path controlled by APT, but does not patch ``sysconfig`` to
do the same. This is similar to the bug worked around in ``get_scheme()``,
but here the default is ``deb_system`` instead of ``unix_local``. Ultimately
we can't do anything about this Debian bug, and this detection allows us to
skip the warning when needed.
Fz/usr/lib/python3/dist-packagesT)rH   )r   s   &r   $_looks_like_deb_system_dist_packagesr     s     %&&00r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s      S r   c                 (   \         P                  ! 4       p \        '       d   V # \        P                  ! 4       p\	        V4      '       d   V# \        \        P                  ! V4      \        P                  ! V 4      RR7      '       d   \        4        V# )z,Return the default pure-Python lib location.r4   ry   )	r	   get_purelibr   r$   r   rz   r   r   r   r   s     r   r   r     sc    

 
 
"C~


 
 
"C+C00
c*GLL,=9MMJr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s      S r   c                 ,   \         P                  ! 4       p \        '       d   V # ^RIHp VP                  ! 4       p\        V4      '       d   V# \        \        P                  ! V4      \        P                  ! V 4      RR7      '       d   \        4        V# )z0Return the default platform-shared lib location.r#   r*   ry   )
r	   get_platlibr   r   r$   r   rz   r   r   r   )rn   r$   rl   s      r   r   r     sf    

 
 
"C~


 
 
"C+C00
c*GLL,=9MMJr   )
r
   r   r   r   r   r   r   r   r   r   )FNNFN)9__conditional_annotations__
__future__r   	functoolsloggingrP   r   rS   r!   pip._internal.models.schemer   r   pip._internal.utils.compatr   pip._internal.utils.deprecationr   pip._internal.utils.virtualenvr   r   r	   baser
   r   r   r   r   r   __all__	getLogger__name__rq   r    r   __annotations__r"   r   r$   DEBUGrs   WARNINGr.   r7   cacherC   rH   rV   r^   rj   rv   rz   r   r   r   r   r   r   r   )r   s   @r   <module>r      s   " "   	  
  ; . 6 C   
		8	$ 3e4S 4@ '(  mmOooO,J   O O  & H H  " C C LL L 	L
 L L$cL8"r   