
    q"h7                     b   % 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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  SS	KJrJrJrJrJrJr  / S
Qr\R:                  " \5      r\ " \SS5      r!\"\#S'   \RH                  S:  r%S\&4S jr'\'" 5       r(\((       d  SSKJ)r)  \%(       a  \((       d  \RT                  r+O\RX                  r+S\&4S jr-S\\"\"4   S\&4S jr.\ R^                  " SS9S\&4S j5       r0\ R^                  " SS9S\&4S j5       r1\ R^                  " SS9S\&4S j5       r2\ R^                  " SS9S\&4S j5       r3\ R^                  " SS9S\&4S j5       r4\ R^                  " SS9S\Rj                  S\Rj                  S\"SS4S j5       r6S\Rj                  S\Rj                  S\"S\&4S jr7\ R^                  " SS9S SSSS!.S"\&S#\	\"   S$\	\"   S%\	\"   SS4
S& jj5       r8     S0S'\"S"\&S#\	\"   S$\	\"   S(\&S%\	\"   S\4S) jjr9S\"4S* jr:S\"4S+ jr;S,\"S\&4S- jr<S\"4S. jr=S\"4S/ jr>g)1    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)
r   get_bin_prefixget_bin_userr   get_platlibget_purelib
get_schemer   r   r   
platlibdirlib_PLATLIBDIR)   
   returnc                  >    [        [        [        S[        5      5      $ )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)boolgetattr	sysconfig_USE_SYSCONFIG_DEFAULT     R/var/www/html/env/lib/python3.13/site-packages/pip/_internal/locations/__init__.py_should_use_sysconfigr'   .   s     	#79OPQQr%   
_distutilsc                  J    SSK Jn    U S   S   nUS:H  $ ! [         a     gf = f)zkThe resolution to bpo-44860 will change this incorrect platlib.

See <https://bugs.python.org/issue44860>.
r   INSTALL_SCHEMES	unix_userplatlibFz	$usersite)distutils.command.installr,   KeyError)r,   unix_user_platlibs     r&   _looks_like_bpo_44860r2   L   s=    
 :+K8C ++  s    
""schemec                     U S   nSU;   a  UR                  SS[         S35      nSU;  a  gUR                  SS5      nUR                  SS5      U S	   :H  $ )
Nr.   z/$platlibdir///lib64/Fz/lib/z
$platbase/z$base/purelib)replacer   )r3   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                  :   ^  SSK Jm   [        U 4S jS 5       5      $ )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   r+   c              3   X   >#    U  H  nUT;   =(       a    [        TU   5      v   M!     g 7fN)r:   ).0kr,   s     r&   	<genexpr>*_looks_like_red_hat_lib.<locals>.<genexpr>l   s8       .A 	
_ 	L78JK	L-s   '*)unix_prefix	unix_home)r/   r,   allr+   s   @r&   _looks_like_red_hat_librF   d   s$     :  .  r%   c                  0    SSK Jn   SU ;   =(       a    SU ;   $ )z#Debian adds two additional schemes.r   r+   
deb_system
unix_local)r/   r,   r+   s    r&   _looks_like_debian_schemerJ   s   s     :?*N|/NNr%   c                  V   SSK Jn   SSKJn  U " U" 5       5      nUR	                  5         UR
                  [        R                  R                  [        R
                  5       S3:H  =(       a=    UR                  [        R                  R                  [        R                  5       S3:H  $ )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.
r   )install)Distributionz/local)r/   rL   distutils.distrM   finalize_optionsexec_prefixospathnormpathsysprefix)rL   rM   cmds      r&   _looks_like_red_hat_schemerW   {   s{     2+|~&Cbgg..s?@GG 	BJJRWW--cjj9:&AAr%   c                      [         c  g [        R                  " SSS9n SU S   ;   =(       a	    S[         ;  $ ! [         a     gf = f)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)r3   expandr6   r7   )r   r"   	get_pathsr0   pathss    r&   _looks_like_slackware_schemer^      sT     ##<F i((GYi-GG  s   7 
AAc                  f   ^  [         R                  " SSS9m [        S U 4S jS 5        5       5      $ )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   ~   #    U  H3  nS U;  =(       a"    SU;   =(       a    UR                  S5      (       + v   M5     g7f)Libr   zsite-packagesN)endswith)r?   ps     r&   rA   1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>   s8      ?A 	QI5A:Iajj.I*II?s   ;=c              3   .   >#    U  H
  nTU   v   M     g 7fr>   r$   )r?   keyr]   s     r&   rA   re      s     ?(>%*(>s   r.   r7   )r"   r[   rE   r\   s   @r&   _looks_like_msys2_mingw_schemeri      s7     U3E ?(>?  r%   oldnewrg   c                D    SnSn[         R                  [        XBX0U5        g )Nz(https://github.com/pypa/pip/issues/10151zSValue for %s does not match. Please report this to <%s>
distutils: %s
sysconfig: %s)loggerlog_MISMATCH_LEVEL)rj   rk   rg   	issue_urlmessages        r&   _warn_mismatchedrr      s%    :I	 
 JJicBr%   c                $    X:X  a  g[        XUS9  g)NFrg   T)rr   )rj   rk   rg   s      r&   _warn_if_mismatchru      s    
zS3'r%   FuserhomerootrU   rw   rx   ry   rU   c                 b    / SQn[         R                  [        SR                  U5      XX#5        g )N)zAdditional context:z	user = %rz	home = %rz	root = %rzprefix = %r
)rm   rn   ro   join)rw   rx   ry   rU   partss        r&   _log_contextr~      s&    E JJ		% 0$dKr%   	dist_nameisolatedc           
      L  ^^ [         R                  " U UUUUUS9n[        (       a  U$ [        R                  " U UUUUUS9m/ n[         GHf  n[
        R                  " [        TU5      5      n	[
        R                  " [        Xh5      5      n
X:X  a  MJ  [        R                  R                  S:H  =(       at    US L=(       ai    US;   =(       a]    U	R                  U
R                  :H  =(       a=    U	R                  R                  S5      =(       a    U
R                  R                  S5      nU(       a  M  U=(       al    [        5       =(       a[    US:H  =(       aO    U	R                  R                  U
R                  :H  =(       a%    U	R                  R                  R                  S5      nU(       a  GMj  US:X  a  [        5       (       a  GM  U=(       a8    US:H  =(       a,    [        (       + =(       a    [         S:g  =(       a
    [#        5       nU(       a  GM  U=(       a(    US;   =(       a    [        (       + =(       a
    [%        5       nU(       a  GM  U=(       d    U=(       d    U=(       d
    ['        5       (       + =(       a    U	R(                  SS	 S
:H  =(       a    [+        U
R(                  5      S:  =(       al    U
R(                  S   S:H  =(       aS    [+        U
R(                  5      S	:  =(       d    U
R(                  S   S:g  =(       a    [-        5       =(       d
    [/        5       nU(       a  GM  [        =(       a    US;   =(       a
    [1        5       nU(       a  GM  [2        R4                  " SS9=(       a    [        (       + =(       a    US;   nU(       a  GMP  UR7                  XSU 345        GMi     U(       d  T$ [        R8                  " U UUUUUSS9m[;        UU4S j[         5       5      (       a  [=        SS S S9  T$ U H  u  pn[?        XUS9  M     [A        XX5S9  T$ )N)rw   rx   ry   r   rU   pypyrh   pythonheadersr.   r   r   r   )usrlocalr      r   T)
check_home)r   includeplatincludezscheme.)ignore_config_filesc              3   H   >#    U  H  nTU   [        TU5      :g  v   M     g 7fr>   )r!   )r?   r@   default_oldrj   s     r&   rA   get_scheme.<locals>.<genexpr>g  s      
Bk;q>WS!_,ks   "zConfiguring 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_inrt   rv   )!r   r   _USE_SYSCONFIGr)   r   pathlibPathr!   rT   implementationnameparent
startswithr   rF   r   r   r2   r^   r
   r}   lenrW   rJ   ri   r"   is_python_buildappenddistutils_schemeanyr	   rr   r~   )r   rw   rx   ry   r   rU   rk   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_buildrg   r   rj   s                      @@r&   r   r      s    

C ~

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

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

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

 -- K 
Bk
BBBL
 		
 
 .c3/ .dD@Jr%   c                      [         R                  " 5       n [        (       a  U $ [        R                  " 5       n[	        [
        R                  " U5      [
        R                  " U 5      SS9(       a
  [        5         U$ )N
bin_prefixrt   )r   r   r   r)   ru   r   r   r~   rk   rj   s     r&   r   r   |  sP    

#
#
%C~


#
#
%Cc*GLL,=<PJr%   c                  @    [         R                  " SSS9R                  $ )N T)rw   )r   r   scriptsr$   r%   r&   r   r     s      $/777r%   valuec                 2    [        5       (       d  gU S:X  a  gg)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)rJ   )r   s    r&   $_looks_like_deb_system_dist_packagesr     s     %&&00r%   c                     [         R                  " 5       n [        (       a  U $ [        R                  " 5       n[	        U5      (       a  U$ [        [        R                  " U5      [        R                  " U 5      SS9(       a
  [        5         U$ )z,Return the default pure-Python lib location.r7   rt   )	r   r   r   r)   r   ru   r   r   r~   r   s     r&   r   r     s`    

 
 
"C~


 
 
"C+C00
c*GLL,=9MJr%   c                      [         R                  " 5       n [        (       a  U $ SSKJn  UR                  " 5       n[        U5      (       a  U$ [        [        R                  " U5      [        R                  " U 5      SS9(       a
  [        5         U$ )z0Return the default platform-shared lib location.r   r(   r.   rt   )
r   r   r   r   r)   r   ru   r   r   r~   )rk   r)   rj   s      r&   r   r     sc    

 
 
"C~


 
 
"C+C00
c*GLL,=9MJr%   )FNNFN)?	functoolsloggingrQ   r   rT   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__rm   r!   r   str__annotations__version_infor#   r    r'   r   r)   WARNINGro   DEBUGr2   r:   	lru_cacherF   rJ   rW   r^   ri   r   rr   ru   r~   r   r   r   r   r   r   r$   r%   r&   <module>r      s.     	  
  & & ; . 6 C   
		8	$ 3e4S 4))W4 Rt R '(  .ooOmmO,t ,JS#X J4 J T"  # T"O4 O #O T"D  #& T"Hd H #H T"  #" T"C',, CW\\ C3 C4 C #C7<< gll C D  T"  L
L 3-L 3-	L
 SML 
L #L(  cc
c 3-c 3-	c
 c SMc cL 8c 8  "S S r%   