§
    
Á³g<  ã                   ó|  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZ d dlmZmZ d dlmZ d dlmZ d dlmZ ddlmZ dd	lmZmZmZmZmZmZ g d
¢Z ej        e ¦  «        Z! e"edd¦  «        Z#e$e%d<   ej&        dk    Z'de(fd„Z) e)¦   «         Z*e*sddlm+Z+ e'r
e*sej,        Z-nej.        Z-de(fd„Z/dee$e$f         de(fd„Z0 e j1        d¬¦  «        de(fd„¦   «         Z2 e j1        d¬¦  «        de(fd„¦   «         Z3 e j1        d¬¦  «        de(fd„¦   «         Z4 e j1        d¬¦  «        de(fd„¦   «         Z5 e j1        d¬¦  «        de(fd„¦   «         Z6dee$         de	e$ddf         fd„Z7 e j1        d¬¦  «        dej8        dej8        de$ddfd „¦   «         Z9dej8        dej8        de$de(fd!„Z: e j1        d¬¦  «        d"dddd#œd$e(d%e
e$         d&e
e$         d'e
e$         ddf
d(„¦   «         Z;	 	 	 	 	 d2d)e$d$e(d%e
e$         d&e
e$         d*e(d'e
e$         defd+„Z<de$fd,„Z=de$fd-„Z>d.e$de(fd/„Z?de$fd0„Z@de$fd1„ZAdS )3é    N)ÚAnyÚDictÚ	GeneratorÚOptionalÚTuple)Ú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                  óR   — t          t          t          dt          ¦  «        ¦  «        S )ax  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© ó    ú^/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_internal/locations/__init__.pyÚ_should_use_sysconfigr)   .   s    € õ •�	Ð#7Õ9OÑPÔPÑQÔQÐQr'   ©Ú
_distutilsc                  ó\   — ddl m}  	 | d         d         }n# t          $ r Y dS w xY w|dk    S )zsThe 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_44860r4   L   s[   € ð
 :Ð9Ð9Ð9Ð9Ð9ðØ+¨KÔ8¸ÔCÐÐøÝð ð ð Øˆuˆuðøøøà Ò+Ð+s   ˆ —
%¤%Úschemec                 óÐ   — | d         }d|v r|                      ddt          › d�¦  «        }d|vrdS |                      dd¦  «        }|                      dd¦  «        | d	         k    S )
Nr0   z/$platlibdir/ú/ú/lib64/Fz/lib/z
$platbase/z$base/Úpurelib)Úreplacer   )r5   r0   Ú	unpatcheds      r(   Ú+_looks_like_red_hat_patched_platlib_purelibr<   Z   sy   € Ø�YÔ€GØ˜'Ð!Ð!Ø—/’/ /Ð3Eµ{Ð3EÐ3EÐ3EÑFÔFˆØ˜ÐÐØˆuØ—’ 	¨7Ñ3Ô3€IØ×Ò˜\¨8Ñ4Ô4¸¸yÔ8IÒIÐIr'   )Úmaxsizec                  óF   ‡ — ddl mŠ  t          ˆ fd„dD ¦   «         ¦  «        S )z‘Red 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   óJ   •K  — | ]}|‰v ot          ‰|         ¦  «        V — Œd S ©N)r<   )Ú.0Úkr.   s     €r(   ú	<genexpr>z*_looks_like_red_hat_lib.<locals>.<genexpr>l   sT   øè è € ð ð ð ð 	
ˆ_Ðð 	LÝ7¸ÈÔ8JÑKÔKðð ð ð ð ð r'   )Úunix_prefixÚ	unix_home)r1   r.   Úallr-   s   @r(   Ú_looks_like_red_hat_librG   d   sQ   ø€ ð :Ð9Ð9Ð9Ð9Ð9åð ð ð ð ð .ðñ ô ñ ô ð r'   c                  ó   — ddl m}  d| v od| v S )z#Debian adds two additional schemes.r   r-   Ú
deb_systemÚ
unix_local)r1   r.   r-   s    r(   Ú_looks_like_debian_schemerK   s   s+   € ð :Ð9Ð9Ð9Ð9Ð9à˜?Ð*ÐN¨|¸Ð/NÐNr'   c                  ó<  — ddl m}  ddlm}  |  |¦   «         ¦  «        }|                     ¦   «          |j        t          j                             t          j        ¦  «        › d�k    o4|j
        t          j                             t          j
        ¦  «        › d�k    S )a\  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)r1   rM   Údistutils.distrN   Úfinalize_optionsÚexec_prefixÚosÚpathÚnormpathÚsysÚprefix)rM   rN   Úcmds      r(   Ú_looks_like_red_hat_schemerX   {   s¤   € ð 2Ð1Ð1Ð1Ð1Ð1Ø+Ð+Ð+Ð+Ð+Ð+àˆw�|�|‘~”~Ñ&Ô&€CØ×ÒÑÔÐàŒ�bœg×.Ò.­s¬Ñ?Ô?ÐGÐGÐGÒGð 	BØŒJ�RœW×-Ò-­c¬jÑ9Ô9ÐAÐAÐAÒAðr'   c                  óŒ   — t           €dS 	 t          j        dd¬¦  «        } n# t          $ r Y dS w xY wd| d         v odt           vS )zÌSlackware 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.
    NFÚ
posix_user)r5   Úexpandr8   r9   )r   r$   Ú	get_pathsr2   ©Úpathss    r(   Ú_looks_like_slackware_schemer_   �   sg   € õ ÐØˆuðÝÔ#¨<ÀÐFÑFÔFˆˆøÝð ð ð Øˆuˆuðøøøà˜˜iÔ(Ð(ÐG¨Y½iÐ-GÐGs   ‹" ¢
0¯0c                  óz   ‡ — t          j        dd¬¦  «        Š t          d„ ˆ fd„dD ¦   «         D ¦   «         ¦  «        S )a‰  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   óR   K  — | ]"}d |vod|v o|                      d¦  «         V — Œ#dS )ÚLibr   zsite-packagesN)Úendswith)rA   Úps     r(   rC   z1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>«   sW   è è € ð ð àð 	�QˆÐI˜5 A˜:ÐI¨a¯jªj¸Ñ.IÔ.IÐ*Iðð ð ð ð ð r'   c              3   ó(   •K  — | ]}‰|         V — Œd S r@   r&   )rA   Úkeyr^   s     €r(   rC   z1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>­   s'   øè è € Ð?Ð? �%˜”*Ð?Ð?Ð?Ð?Ð?Ð?r'   ©r0   r9   )r$   r\   rF   r]   s   @r(   Ú_looks_like_msys2_mingw_schemeri   Ÿ   s]   ø€ õ Ô ¨UÐ3Ñ3Ô3€EÝð ð à?Ð?Ð?Ð?Ð(>Ð?Ñ?Ô?ðñ ô ñ ô ð r'   Úpartsc              #   ó  K  — t          j        d¦  «        }t          t          dd ¦  «        }|r|r|                     |¦  «        s
| E d {V —† d S | D ]5}|                     |¦  «        r|d dt          |¦  «        z
  …         }|V — Œ6d S )NÚ	LDVERSIONÚabiflagsr   )r$   Úget_config_varr#   rU   rd   Úlen)rj   Ú	ldversionrm   Úparts       r(   Ú_fix_abiflagsrr   ±   s¿   è è € ÝÔ(¨Ñ5Ô5€IÝ•s˜J¨Ñ-Ô-€Hð ð ˜Hð ¨I×,>Ò,>¸xÑ,HÔ,Hð ØÐÐÐÐÐÐÐØˆð ð ð ˆØ�=Š=˜Ñ#Ô#ð 	/ØÐ-˜1�s 8™}œ}Ñ,Ð-Ô.ˆDØˆ
ˆ
ˆ
ˆ
ðð r'   ÚoldÚnewrg   c                óV   — d}d}t                                t          |||| |¦  «         d S )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)rs   rt   rg   Ú	issue_urlÚmessages        r(   Ú_warn_mismatchedr{   Á   s5   € à:€Ið	ð õ
 ‡J‚J� ¨¨i¸¸cÑBÔBÐBÐBÐBr'   c                ó:   — | |k    rdS t          | ||¬¦  «         dS )NF©rg   T)r{   )rs   rt   rg   s      r(   Ú_warn_if_mismatchr~   Ì   s*   € Ø
ˆc‚z€zØˆuÝ�S˜# 3Ð'Ñ'Ô'Ð'Øˆ4r'   F©ÚuserÚhomeÚrootrV   r€   r�   r‚   rV   c                 ó|   — g d¢}t                                t          d                     |¦  «        | |||¦  «         d S )N)zAdditional context:z	user = %rz	home = %rz	root = %rzprefix = %rú
)rv   rw   rx   Újoin)r€   r�   r‚   rV   rj   s        r(   Ú_log_contextr†   Ó   sC   € ðð ð €Eõ ‡J‚J� §	¢	¨%Ñ 0Ô 0°$¸¸dÀFÑKÔKÐKÐKÐKr'   Ú	dist_nameÚisolatedc           	      ó  ‡‡— t          j        | |||||¬¦  «        }t          r|S t          j        | |||||¬¦  «        Šg }t          D �]³}t          j        t          ‰|¦  «        ¦  «        }	t          j        t          ||¦  «        ¦  «        }
|	|
k    rŒNt          j	        j
        dk    oK|d uoG|dv oC|	j        |
j        k    o3|	j
                             d¦  «        o|
j
                             d¦  «        }|rŒ²|oGt          ¦   «         o9|dk    o3|	j        j        |
j        k    o|	j        j
                             d¦  «        }|rŒÿ|dk    rt          ¦   «         r�Œ|o6|dk    o0t           o(t          j        dk    ot"          dk    ot%          ¦   «         }|r�ŒR|o|dv ot           ot'          ¦   «         }|r�Œr|p|p|pt)          ¦   «          o€|	j        d	d
…         dk    omt-          |
j        ¦  «        d	k    oU|
j        d	         dk    oDt-          |
j        ¦  «        d
k     p|
j        d         dk    ot/          ¦   «         pt1          ¦   «         }|r�Œt          j        dk     o5t           o-|dv o)t3          t5          |	j        ¦  «        ¦  «        |
j        k    }|r�ŒVt          o|dv ot7          ¦   «         }|r�Œst9          j        d¬¦  «        ot           o|dv }|r�Œ˜|                     |	|
d|› �f¦  «         �Œµ|s‰S t          j        | |||||d¬¦  «        ŠtA          ˆˆfd„t          D ¦   «         ¦  «        rtC          dd d ¬¦  «         ‰S |D ]\  }	}
}tE          |	|
|¬¦  «         ŒtG          ||||¬¦  «         ‰S )N)r€   r�   r‚   rˆ   rV   Úpypyrh   ÚpythonÚheadersr0   )r   é	   r   r   r   )ÚusrÚlocalrŽ   é   r�   )r   é   )rŒ   r0   r9   T)Ú
check_home)rŒ   ÚincludeÚplatincludezscheme.)Úignore_config_filesc              3   óL   •K  — | ]}‰|         t          ‰|¦  «        k    V — Œd S r@   )r#   )rA   rB   Údefault_oldrs   s     €€r(   rC   zget_scheme.<locals>.<genexpr>ƒ  s4   øè è € Ð
BÐ
B°ˆ;�qŒ>�W S¨!™_œ_Ò,Ð
BÐ
BÐ
BÐ
BÐ
BÐ
Br'   zöConfiguring 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   Ú_USE_SYSCONFIGr+   r   ÚpathlibÚPathr#   rU   ÚimplementationÚnameÚparentÚ
startswithr   rG   r
   Úversion_infor   r4   r_   r   rj   ro   rX   rK   Útuplerr   ri   r$   Úis_python_buildÚappendÚdistutils_schemeÚanyr   r{   r†   )r‡   r€   r�   r‚   rˆ   rV   rt   Ú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_sysconfig_abiflag_bugÚskip_msys2_mingw_bugÚskip_cpython_buildrg   r—   rs   s                       @@r(   r   r   æ   sà  øø€ õ Ô
ØØØØØØðñ ô €Cõ ð Øˆ
å
Ô
ØØØØØØðñ ô €Cð ÐÝð o?ñ o?ˆÝ”�W S¨!™_œ_Ñ-Ô-ˆÝ”�W S¨!™_œ_Ñ-Ô-ˆà�EŠ>ˆ>Øõ ÔÔ# vÒ-ð .Ø˜DÐ ð.àÐ+Ð+ð.ð ” ¤Ò,ð.ð ”
×%Ò% hÑ/Ô/ð	.ð
 ”
×%Ò% fÑ-Ô-ð 	ð "ð 	Øð ð 7Ý Ñ"Ô"ð7à�Y’ð7ð ”Ô# u¤|Ò3ð7ð ”Ô!×,Ò,¨XÑ6Ô6ð 	-ð 0ð 	Øð �	Š>ˆ>Õ5Ñ7Ô7ˆ>Ùð ð (Ø�Y’ð(å�ð(õ Ô  FÒ*ð(õ ˜uÒ$ð	(õ
 &Ñ'Ô'ð 	ð ð 	Ùð
 ð /ØÐ+Ð+ð/å�ð/õ -Ñ.Ô.ð	 	#ð &ð 	Ùð ÐE˜ÐE ÐEÕ+CÑ+EÔ+EÐFð NØ”˜A˜a˜CÔ Ð$4Ò4ðNå�E”KÑ Ô  1Ò$ðNð ”˜A” %Ò'ðNõ �U”[Ñ!Ô! AÒ%ÐB¨¬°Q¬¸7Ò)Bð	Nõ
 ,Ñ-Ô-ÐLÕ1JÑ1LÔ1Lð 	'ð *ð 	Ùõ
 Ô˜vÒ%ð AÝ�ðAàÐ6Ð6ðAõ •m E¤KÑ0Ô0Ñ1Ô1°U´[Ò@ð	 	#ð &ð 	Ùõ
 ÐX˜Ð3Ð3ÐXÕ8VÑ8XÔ8Xð 	ð  ð 	Ùõ Ô%°Ð6Ñ6Ô6ð ;Ý�ð;àÐ:Ð:ð 	ð
 ð 	Ùà×Ò ¨¨}¸¨}¨}Ð =Ñ>Ô>Ð>Ñ>àð Øˆ
õ
 Ô-ØØØØØØØ ðñ ô €Kõ Ð
BÐ
BÐ
BÐ
BÐ
BµkÐ
BÑ
BÔ
BÑBÔBð ÝðLð
 Øð		
ñ 		
ô 		
ð 		
ð ˆ
ð .ð 0ð 0Ñˆˆu�cÝ˜ ¨3Ð/Ñ/Ô/Ð/Ð/Ý�d ¨D¸Ð@Ñ@Ô@Ð@à€Jr'   c                  óì   — t          j        ¦   «         } t          r| S t          j        ¦   «         }t	          t          j        |¦  «        t          j        | ¦  «        d¬¦  «        rt          ¦   «          |S )NÚ
bin_prefixr}   )r   r   r›   r+   r~   rœ   r�   r†   ©rt   rs   s     r(   r   r   ˜  sd   € Ý
Ô
#Ñ
%Ô
%€CÝð Øˆ
å
Ô
#Ñ
%Ô
%€CÝ�œ cÑ*Ô*­G¬L¸Ñ,=Ô,=À<ÐPÑPÔPð Ý‰ŒˆØ€Jr'   c                  ó8   — t          j        dd¬¦  «        j        S )NÚ T)r€   )r   r   Úscriptsr&   r'   r(   r   r   £  s   € ÝÔ  ¨$Ð/Ñ/Ô/Ô7Ð7r'   Úvaluec                 ó6   — t          ¦   «         sdS | dk    rdS dS )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)rK   )r¹   s    r(   Ú$_looks_like_deb_system_dist_packagesr»   §  s-   € õ %Ñ&Ô&ð ØˆuØÐ0Ò0Ð0ØˆtØˆ5r'   c                  ó  — t          j        ¦   «         } t          r| S t          j        ¦   «         }t	          |¦  «        r|S t          t          j        |¦  «        t          j        | ¦  «        d¬¦  «        rt          ¦   «          |S )z,Return the default pure-Python lib location.r9   r}   )	r   r   r›   r+   r»   r~   rœ   r�   r†   rµ   s     r(   r   r   ¸  sy   € å
Ô
 Ñ
"Ô
"€CÝð Øˆ
å
Ô
 Ñ
"Ô
"€CÝ+¨CÑ0Ô0ð Øˆ
Ý�œ cÑ*Ô*­G¬L¸Ñ,=Ô,=À9ÐMÑMÔMð Ý‰ŒˆØ€Jr'   c                  ó  — t          j        ¦   «         } t          r| S ddlm}  |j        ¦   «         }t          |¦  «        r|S t          t          j        |¦  «        t          j        | ¦  «        d¬¦  «        rt          ¦   «          |S )z0Return the default platform-shared lib location.r   r*   r0   r}   )
r   r   r›   r·   r+   r»   r~   rœ   r�   r†   )rt   r+   rs   s      r(   r   r   Æ  s�   € å
Ô
 Ñ
"Ô
"€CÝð Øˆ
àÐÐÐÐÐà
 ˆ*Ô
 Ñ
"Ô
"€CÝ+¨CÑ0Ô0ð Øˆ
Ý�œ cÑ*Ô*­G¬L¸Ñ,=Ô,=À9ÐMÑMÔMð Ý‰ŒˆØ€Jr'   )FNNFN)BÚ	functoolsÚloggingrR   rœ   rU   r$   Útypingr   r   r   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#   r   ÚstrÚ__annotations__r¢   r%   r"   r)   r›   r+   ÚWARNINGrx   ÚDEBUGr4   r<   Ú	lru_cacherG   rK   rX   r_   ri   rr   r�   r{   r~   r†   r   r   r   r»   r   r   r&   r'   r(   ú<module>rÎ      s¶  ðØ Ð Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø .Ð .Ð .Ð .Ð .Ð .Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø CÐ CÐ CÐ CÐ CÐ Cà Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð €ð 
ˆÔ	˜8Ñ	$Ô	$€ð �7˜3 ¨eÑ4Ô4€ˆSÐ 4Ð 4Ñ 4àÔ)¨WÒ4Ð ðR˜tð Rð Rð Rð Rð 'Ð&Ñ(Ô(€àð ð ÐÐÐÐÐð ð $ .ð $Ø”o€O€Oà”m€Oð,˜tð ,ð ,ð ,ð ,ðJ¸¸SÀ#¸X¼ð JÈ4ð Jð Jð Jð Jð €Ô˜TÐ"Ñ"Ô"ð ð ð ð ñ #Ô"ðð €Ô˜TÐ"Ñ"Ô"ðO 4ð Oð Oð Oñ #Ô"ðOð €Ô˜TÐ"Ñ"Ô"ð Dð ð ð ñ #Ô"ðð& €Ô˜TÐ"Ñ"Ô"ðH dð Hð Hð Hñ #Ô"ðHð €Ô˜TÐ"Ñ"Ô"ð¨ð ð ð ñ #Ô"ðð"˜˜sœð ¨	°#°t¸T°/Ô(Bð ð ð ð ð  €Ô˜TÐ"Ñ"Ô"ðC˜'œ,ð C¨W¬\ð CÀ3ð CÈ4ð Cð Cð Cñ #Ô"ðCð˜7œ<ð ¨g¬lð ÀCð ÈDð ð ð ð ð €Ô˜TÐ"Ñ"Ô"ð ØØØ ðLð Lð Là
ðLð �3Œ-ðLð �3Œ-ð	Lð
 �SŒMðLð 
ðLð Lð Lñ #Ô"ðLð( ØØØØ ðoð oØðoà
ðoð �3Œ-ðoð �3Œ-ð	oð
 ðoð �SŒMðoð ðoð oð oð oðd˜ð ð ð ð ð8�cð 8ð 8ð 8ð 8ð°ð ¸ð ð ð ð ð"�Sð ð ð ð ð�Sð ð ð ð ð ð r'   