ó
    T=ŒjÆ6  ã                  ó  • % S SK Jr  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
  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\R6                  " \5      r\" \SS5      rS\ S'   S#S jr!\!" 5       r"\"(       d  SSKJ#r#  \"(       a  \RH                  r%O\RL                  r%S#S jr'S$S jr(\RR                  S#S j5       r*\RR                  S#S j5       r+\RR                  S#S j5       r,\RR                  S#S j5       r-\RR                  S#S j5       r.\RR                  S%S j5       r/S&S jr0\RR                  SSSSS.         S'S jj5       r1     S(             S)S jjr2S*S jr3S*S jr4S+S  jr5S*S! jr6S*S" jr7g),é    )Ú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)
r   Úget_bin_prefixÚget_bin_userr   Úget_platlibÚget_purelibÚ
get_schemer   r   r   Ú
platlibdirÚlibÚstrÚ_PLATLIBDIRc                 ó6   • [        [        [        SS5      5      $ )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)ÚboolÚgetattrÚ	sysconfig© ó    Úd/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/locations/__init__.pyÚ_should_use_sysconfigr"   -   s   € ô ”œ	Ð#7¸Ó>Ó?Ð?r    ©Ú
_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_44860r-   K   s=   € õ
 :ðØ+¨KÑ8¸ÑCÐð  Ñ+Ð+øô ó Ùðús   ˆ •
"¡"c                ó®   • 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   )Úschemer)   Ú	unpatcheds      r!   Ú+_looks_like_red_hat_patched_platlib_purelibr5   Y   se   € Ø�YÑ€GØ˜'Ó!Ø—/‘/ /°Q´{°mÀ1Ð3EÓFˆØ˜ÓØØ—‘ 	¨7Ó3€IØ×Ñ˜\¨8Ó4¸¸yÑ8IÑIÐIr    c                 ó:   ^ • SSK Jm   [        U 4S jS 5       5      $ )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  óX   >#   • U  H  nUT;   =(       a    [        TU   5      v •  M!     g 7f©N)r5   )Ú.0Úkr'   s     €r!   Ú	<genexpr>Ú*_looks_like_red_hat_lib.<locals>.<genexpr>k   s8   øé € ð ò .ˆAð 	
ˆ_Ñ÷ 	LÜ7¸ÈÑ8JÓKô	Lâ-ùs   ƒ'*)Úunix_prefixÚ	unix_home)r*   r'   Úallr&   s   @r!   Ú_looks_like_red_hat_libr@   c   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_schemerD   r   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*   rF   Údistutils.distrG   Úfinalize_optionsÚexec_prefixÚosÚpathÚnormpathÚsysÚprefix)rF   rG   Úcmds      r!   Ú_looks_like_red_hat_schemerQ   z   s{   € õ 2Ý+á
‘,“.Ó
!€CØ×ÑÔà�‰œbŸg™g×.Ñ.¬s¯©Ó?Ð@ÀÐGÑG÷ 	BØ�J‰JœRŸW™W×-Ñ-¬c¯j©jÓ9Ð:¸&ÐAÑAðr    c                 óŽ   • [         c  g [        R                  " SSS9n SU S   ;   =(       a	    S[         ;  $ ! [         a     gf = f)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.
FÚ
posix_user)r3   Úexpandr0   r1   )r   r   Ú	get_pathsr+   ©Úpathss    r!   Ú_looks_like_slackware_schemerX   Ž   sT   € ô ÑØðÜ×#Ò#¨<ÀÑFˆð ˜˜iÑ(Ñ(×G¨Y¼iÑ-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)rT   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)r9   Úps     r!   r;   Ú1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>ª   s8   é € ð â?ˆAð 	�Q‰×I˜5 A™:×I¨a¯j©j¸Ó.IÔ*IÔIÚ?ùs   ‚;=c              3  ó.   >#   • U  H
  nTU   v •  M     g 7fr8   r   )r9   ÚkeyrW   s     €r!   r;   r_   ¬   s   øé € Ð?Ò(> �%˜–*Ò(>ùs   ƒ©r)   r1   )r   rU   r?   rV   s   @r!   Ú_looks_like_msys2_mingw_schemerc   ž   s7   ø€ ô ×Ò ¨UÑ3€EÜñ ä?Ñ(>Ô?óó ð r    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)ÚoldÚnewra   Ú	issue_urlÚmessages        r!   Ú_warn_mismatchedrl   °   s%   € à:€Ið	ð ô
 ‡J�JŒ ¨i¸cÕBr    c               ó$   • X:X  a  g[        XUS9  g)NF©ra   T)rl   )rh   ri   ra   s      r!   Ú_warn_if_mismatchro   »   s   € Ø
ƒzØÜ�S 3Ò'Ør    F©ÚuserÚhomeÚrootrO   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Ú
)re   rf   rg   Újoin)rq   rr   rs   rO   Úpartss        r!   Ú_log_contextrx   Â   s&   € ò€Eô ‡J�JŒ §	¡	¨%Ó 0°$¸dÕKr    c           
     ó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                  XšS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  pšn[?        XšUS9  M     [A        XX5S9  T$ )N)rq   rr   rs   ÚisolatedrO   Úpypyrb   ÚpythonÚheadersr)   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r8   )r   )r9   r:   Údefault_oldrh   s     €€r!   r;   Úget_scheme.<locals>.<genexpr>f  s    øé € Ð
B²k°ˆ;�q‰>œW S¨!›_Ö,²kùs   ƒ"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_inrn   rp   )!r
   r   Ú_USE_SYSCONFIGr$   r   ÚpathlibÚPathr   rN   ÚimplementationÚnameÚparentÚ
startswithr   r@   r   r   r-   rX   r   rw   ÚlenrQ   rD   rc   r   Úis_python_buildÚappendÚdistutils_schemeÚanyr   rl   rx   )Ú	dist_namerq   rr   rs   rz   rO   ri   Ú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_buildra   r‡   rh   s                      @@r!   r   r   Õ   sÇ  ù€ ô ×
Ò
ØØØØØØñ€C÷ ‚~Øˆ
ä
×
Ò
ØØØØØØñ€Cð Ðßˆ[ˆÜ—’œW S¨!›_Ó-ˆÜ—’œW S›_Ó-ˆà‹>Ùô ×Ñ×#Ñ# 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Ø—‘˜A˜aÐ Ð$4Ñ4÷Nä�E—K‘KÓ  1Ñ$÷Nð —‘˜A‘ %Ñ'÷Nô �U—[‘[Ó! AÑ%×B¨¯©°Q©¸7Ñ)B÷	Nô
 ,Ó-×LÔ1JÓ1Lð 	'ö *Úô
 ×X˜Ð3Ñ3×XÔ8VÓ8Xð 	ö  Úô ×%Ò%°Ñ6÷ ;Ü”÷;àÐ:Ñ:ð 	ö
 Úà×Ñ °¸¸¨}Ð =×>ñG öJ Øˆ
ô
 ×-Ò-ØØØØØØØ ñ€Kô Õ
BµkÓ
B×BÑBÜðLð
 Øò		
ð ˆ
ó .Ñˆ�cÜ˜¨3Ô/ñ .ä�d¨DÒ@à€Jr    c                 óø   • [         R                  " 5       n [        (       a  U $ [        R                  " 5       n[	        [
        R                  " U5      [
        R                  " U 5      SS9(       a
  [        5         U$ )NÚ
bin_prefixrn   )r
   r   rŒ   r$   ro   r�   rŽ   rx   ©ri   rh   s     r!   r   r   {  sP   € Ü
×
#Ò
#Ó
%€Cß‚~Øˆ
ä
×
#Ò
#Ó
%€CÜœŸš cÓ*¬G¯LªL¸Ó,=À<×PÜŒØ€Jr    c                 ó@   • [         R                  " SSS9R                  $ )NÚ T)rq   )r
   r   Úscriptsr   r    r!   r   r   †  s   € Ü× Ò  ¨$Ñ/×7Ñ7Ð7r    c                ó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)rD   )Úvalues    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.r1   rn   )	r
   r   rŒ   r$   r«   ro   r�   rŽ   rx   r¥   s     r!   r   r   ›  s`   € ä
×
 Ò
 Ó
"€Cß‚~Øˆ
ä
×
 Ò
 Ó
"€CÜ+¨C×0Ñ0Øˆ
ÜœŸš cÓ*¬G¯LªL¸Ó,=À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)   rn   )
r
   r   rŒ   r§   r$   r«   ro   r�   rŽ   rx   )ri   r$   rh   s      r!   r   r   ©  sc   € ä
×
 Ò
 Ó
"€Cß‚~Øˆ
åà
×
 Ò
 Ó
"€CÜ+¨C×0Ñ0Øˆ
ÜœŸš cÓ*¬G¯LªL¸Ó,=À9×MÜŒØ€Jr    )Úreturnr   )r3   zdict[str, str]r®   r   )rh   úpathlib.Pathri   r¯   ra   r   r®   ÚNone)rh   r¯   ri   r¯   ra   r   r®   r   )
rq   r   rr   ú
str | Noners   r±   rO   r±   r®   r°   )FNNFN)r˜   r   rq   r   rr   r±   rs   r±   rz   r   rO   r±   r®   r   )r®   r   )rª   r   r®   r   )8Ú
__future__r   Ú	functoolsÚloggingrK   r�   rN   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__re   r   r   Ú__annotations__r"   rŒ   r$   ÚDEBUGrg   ÚWARNINGr-   r5   Úcacher@   rD   rQ   rX   rc   rl   ro   rx   r   r   r   r«   r   r   r   r    r!   Ú<module>rÁ      s  ðÞ "ã Û Û 	Û Û 
Û ç ;Ý .Ý 6Ý Cå ÷÷ ò€ð 
×	Ò	˜8Ó	$€ñ ˜3 ¨eÓ4€ˆSÓ 4ô@ñ 'Ó(€æõ ö Ø—m‘m�Oà—o‘o€Oô,ôJð ‡�óó ðð ‡�óOó ðOð ‡�óó ðð& ‡�óHó ðHð ‡�óó ðð" ‡�óCó ðCôð ‡�ð ØØØñLà
ðLð ðLð ð	Lð
 ðLð 
ôLó ðLð( ØØØØðcØðcà
ðcð ðcð ð	cð
 ðcð ðcð õcôLô8ôô"õr    