+
    <j7              	         a  R4 t<0 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	H
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]P<                  ! ]4      t ]!! ]R	R
4      t"] ^ k ]PF                  R68  t$R R lt%]%! 4       t&]&'       g   ^RIH't' ]$'       d   ]&'       g   ]PP                  t)M]PT                  t)R R lt+R R lt,]PZ                  ! RR7      R R l4       t.]PZ                  ! RR7      R R l4       t/]PZ                  ! RR7      R R l4       t0]PZ                  ! RR7      R R l4       t1]PZ                  ! RR7      R R l4       t2]PZ                  ! RR7      R R l4       t3R R  lt4]PZ                  ! RR7      R!R"R#RR$RR%R/R& R' ll4       t5R7R( R) llt6R* R+ lt7R, R- lt8R. R/ lt9R0 R1 lt:R2 R3 lt;R# )8    N)AnyDictOptional)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libc                $    V ^8  d   QhR\         /#    returnbool)formats   "U/opt/headortail/venv/lib/python3.14/site-packages/pip/_internal/locations/__init__.py__annotate__r   .   s     R Rt R    c                 >    \        \        \        R\        4      4      # )a\  This function determines the value of _USE_SYSCONFIG.

By default, pip uses sysconfig on Python 3.10+.
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_SYSCONFIG)r   getattr	sysconfig_USE_SYSCONFIG_DEFAULT r   r   _should_use_sysconfigr$   .   s     	#79OPQQr   
_distutilsc                $    V ^8  d   QhR\         /# r   r   )r   s   "r   r   r   L   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_44860r0   L   s=    
 :+K8C ++  s    ,,c                R    V ^8  d   QhR\         \        \        3,          R\        /# )r   schemer   )r   strr   )r   s   "r   r   r   Z   s&     J JS#X 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)replace_PLATLIBDIR)r2   r,   	unpatcheds   &  r   +_looks_like_red_hat_patched_platlib_purelibr;   Z   se    YG'!///Q{m13EF	73I\84y8IIIr   )maxsizec                $    V ^8  d   QhR\         /# r   r   )r   s   "r   r   r   e   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)r;   ).0kr*   s   & r   	<genexpr>*_looks_like_red_hat_lib.<locals>.<genexpr>l   s>       .A 	
_ 	L 	L78JK	L-s   //FT)unix_prefix	unix_home)r-   r*   allr)   s   @r   _looks_like_red_hat_librH   d   sG     :3  .33 3 3  .  r   c                $    V ^8  d   QhR\         /# r   r   )r   s   "r   r   r   t   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_schemerM   s   s     :?*NN|/NNr   c                $    V ^8  d   Qh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-   rP   distutils.distrQ   finalize_optionsexec_prefixospathnormpathsysprefix)rP   rQ   cmds      r   _looks_like_red_hat_schemer[   {   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   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)r2   expandr6   r7   )r   r!   	get_pathsr.   pathss    r   _looks_like_slackware_schemerc      sW     ##<F i((GGYi-GG  s   A AAc                $    V ^8  d   Qh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)r_   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)rA   ps   & r   rC   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#   )rA   keyrb   s   & r   rC   rk      s     ?(>%**(>s   Tr,   r7   )r!   r`   rG   ra   s   @r   _looks_like_msys2_mingw_schemero      s^     U3E3 ?(>?33 3 3 ?(>?  r   c                h    V ^8  d   QhR\         P                  R\         P                  R\        RR/# )r   oldnewrm   r   N)pathlibPathr3   )r   s   "r   r   r      s6     C C',, CW\\ 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)rq   rr   rm   	issue_urlmessages   &&$  r   _warn_mismatchedr{      s%    :I	 
 JJicBr   c                p    V ^8  d   QhR\         P                  R\         P                  R\        R\        /# )r   rq   rr   rm   r   )rs   rt   r3   r   )r   s   "r   r   r      s0      7<< gll C D r   c                0    W8X  d   R # \        WVR7       R# )Frm   T)r{   )rq   rr   rm   s   &&$r   _warn_if_mismatchr      s    
zS3'r   userFhomerootrY   c          
          V ^8  d   QhR\         R\        \        ,          R\        \        ,          R\        \        ,          RR/# )r   r   r   r   rY   r   N)r   r   r3   )r   s   "r   r   r      sO     L L
L 3-L 3-	L
 SM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)rv   rw   rx   join)r   r   r   rY   partss   $$$$ r   _log_contextr      s&    E JJ		% 0$dKr   c                    V ^8  d   QhR\         R\        R\        \         ,          R\        \         ,          R\        R\        \         ,          R\        /# )r   	dist_namer   r   r   isolatedrY   r   )r3   r   r   r   )r   s   "r   r   r      sc     c cc
c 3-c 3-	c
 c SM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   rY   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    )rA   rB   default_oldrq   s   & r   rC   get_scheme.<locals>.<genexpr>g  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_inr~   )r   r   r   rY   rn   )r   r   )r   includeplatinclude)!r   
get_scheme_USE_SYSCONFIGr&   r   rs   rt   r    rX   implementationnameparent
startswithr   rH   r   r9   r0   rc   r
   r   lenr[   rM   ro   r!   is_python_buildappenddistutils_schemeanyr	   r{   r   )r   r   r   r   r   rY   rr   warning_contextsrB   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_buildrm   r   rq   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   r3   )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_prefixr~   )r   get_bin_prefixr   r&   r   rs   rt   r   rr   rq   s     r   r   r   |  sS    

#
#
%C~


#
#
%Cc*GLL,=<PPJr   c                $    V ^8  d   Qh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                0    V ^8  d   QhR\         R\        /# )r   valuer   )r3   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)rM   )r   s   &r   $_looks_like_deb_system_dist_packagesr     s     %&&00r   c                $    V ^8  d   Qh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.r7   r~   )	r   get_purelibr   r&   r   r   rs   rt   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   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,   r~   )
r   get_platlibr   r   r&   r   r   rs   rt   r   )rr   r&   rq   s      r   r   r     sf    

 
 
"C~


 
 
"C+C00
c*GLL,=9MMJr   c                @    V ^8  d   Qh/ ^ \         9   d
   \        ;R&   # )r   r9   )__conditional_annotations__r3   )r   s   "r   r   r      s      P 5 4S 4Q r   )
r   r   r   r   r   r   r   r   r   r   )r   
   )FNNFN)=r   	functoolsloggingrU   rs   rX   r!   typingr   r   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__rv   r    r9   version_infor"   r$   r   r&   WARNINGrx   DEBUGr0   r;   	lru_cacherH   rM   r[   rc   ro   r{   r   r   r   r   r   r   r   r   r   )r   s   @r   <module>r      s      	  
  & & ; . 6 C   
		8	$ 3e4 4))W4 R '(  .ooOmmO,J T" # T"O #O T" #& T"H #H T" #" T"C #C T"LL L 	L
 !L #L$cL8"r   