Ë
    KêjÆ6  ã                  óÞ  — U d dl mZ 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
 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j6                  e«      Z eedd«      Zde d<   d#d„Z! e!«       Z"e"sddlm#Z# e"rejH                  Z%nejL                  Z%d#d„Z'd$d„Z(ejR                  d#d„«       Z*ejR                  d#d„«       Z+ejR                  d#d„«       Z,ejR                  d#d„«       Z-ejR                  d#d„«       Z.ejR                  d%d„«       Z/d&d„Z0ejR                  dddddœ	 	 	 	 	 	 	 	 	 d'd„«       Z1	 	 	 	 	 d(	 	 	 	 	 	 	 	 	 	 	 	 	 d)d„Z2d*d„Z3d*d„Z4d+d „Z5d*d!„Z6d*d"„Z7y),é    )Ú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   — t        t        t        dd«      «      S )ah  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© ó    úe/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pip/_internal/locations/__init__.pyÚ_should_use_sysconfigr"   -   s   € ô ”œ	Ð#7¸Ó>Ó?Ð?r    ©Ú
_distutilsc                 óH   — ddl m}  	 | d   d   }|dk(  S # t        $ r Y yw xY w)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_44860r-   K   s=   € õ
 :ðØ+¨KÑ8¸ÑCÐð  Ñ+Ð+øô ò Ùðús   ˆ •	! !c                ó¦   — | d   }d|v r|j                  ddt        › d�«      }d|vry|j                  dd«      }|j                  dd«      | d	   k(  S )
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                 ó8   ‡ — 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  óF   •K  — | ]  }|‰v xr t        ‰|   «      –— Œ y ­w©N)r5   )Ú.0Úkr'   s     €r!   ú	<genexpr>z*_looks_like_red_hat_lib.<locals>.<genexpr>k   s9   øè ø€ ò ð ð 	
ˆ_Ðò 	LÜ7¸ÈÑ8JÓKó	Lñùs   ƒ!)Úunix_prefixÚ	unix_home)r*   r'   Úallr&   s   @r!   Ú_looks_like_red_hat_libr?   c   s$   ø€ õ :äó ð .ôó ð r    c                 ó"   — ddl m}  d| v xr d| v S )z#Debian adds two additional schemes.r   r&   Ú
deb_systemÚ
unix_local)r*   r'   r&   s    r!   Ú_looks_like_debian_schemerC   r   s   € õ :à˜?Ð*ÒN¨|¸Ð/NÐNr    c                 óL  — ddl m}  ddlm}  |  |«       «      }|j	                  «        |j
                  t        j                  j                  t        j
                  «      › d�k(  xr= |j                  t        j                  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)r*   rE   Údistutils.distrF   Úfinalize_optionsÚexec_prefixÚosÚpathÚnormpathÚsysÚprefix)rE   rF   Úcmds      r!   Ú_looks_like_red_hat_schemerP   z   s{   € õ 2Ý+á
‘,“.Ó
!€CØ×ÑÔà�‰œbŸg™g×.Ñ.¬s¯©Ó?Ð@ÀÐGÑGò 	BØ�J‰JœRŸW™W×-Ñ-¬c¯j©jÓ9Ð:¸&ÐAÑAðr    c                 ó€   — t         €y	 t        j                  dd¬«      } d| d   v xr dt         vS # t        $ r Y yw xY w)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_schemerW   Ž   sT   € ô ÐØðÜ×#Ñ#¨<ÀÔFˆð ˜˜iÑ(Ð(ÒG¨Y¼iÐ-GÐGøô ò Ùðús   ‰1 ±	=¼=c                 óh   ‡ — 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)rS   c              3  óX   K  — | ]"  }d |vxr d|v xr |j                  d«       –— Œ$ y­w)ÚLibr   zsite-packagesN)Úendswith)r9   Úps     r!   r;   z1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>ª   s9   è ø€ ò àð 	�QˆÒI˜5 A˜:ÒI¨a¯j©j¸Ó.IÐ*IÓIñùs   ‚(*c              3  ó(   •K  — | ]	  }‰|   –— Œ y ­wr8   r   )r9   ÚkeyrV   s     €r!   r;   z1_looks_like_msys2_mingw_scheme.<locals>.<genexpr>¬   s   øè ø€ Ò? �%˜•*Ñ?ùs   ƒ©r)   r1   )r   rT   r>   rU   s   @r!   Ú_looks_like_msys2_mingw_schemera   ž   s7   ø€ ô ×Ñ ¨UÔ3€EÜñ ã?Ð(>Ô?ôó ð r    c               óH   — d}d}t         j                  t        |||| |«       y )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Únewr_   Ú	issue_urlÚmessages        r!   Ú_warn_mismatchedrj   °   s)   € à:€Ið	ð ô
 ‡J�JŒ ¨¨i¸¸cÕBr    c               ó,   — | |k(  ryt        | ||¬«       y)NF©r_   T)rj   )rf   rg   r_   s      r!   Ú_warn_if_mismatchrm   »   s   € Ø
ˆc‚zØÜ�S˜# 3Õ'Ør    F©ÚuserÚhomeÚrootrN   c                óf   — g d¢}t         j                  t        dj                  |«      | |||«       y )N)zAdditional context:z	user = %rz	home = %rz	root = %rzprefix = %rú
)rc   rd   re   Újoin)ro   rp   rq   rN   Úpartss        r!   Ú_log_contextrv   Â   s*   € ò€Eô ‡J�JŒ §	¡	¨%Ó 0°$¸¸dÀFÕKr    c           	     ó–  ‡‡— t        j                  | |||||¬«      }t        r|S t        j                  | |||||¬«      Šg }t        D �]‹  }t        j                  t        ‰|«      «      }	t        j                  t        ||«      «      }
|	|
k(  rŒHt        j                  j                  dk(  xr_ |d uxrY |dv xrS |	j                  |
j                  k(  xr8 |	j                  j                  d«      xr |
j                  j                  d«      }|rŒÉ|xr] t        «       xrQ |dk(  xrJ |	j                  j                  |
j                  k(  xr% |	j                  j                  j                  d«      }|r�Œ.|dk(  rt        «       r�Œ?|xr% |dk(  xr t         xr t         dk7  xr
 t#        «       }|r�Œl|xr |dv xr t         xr
 t%        «       }|r�Œ�|xs |xs |xs
 t'        «        xr† |	j(                  dd	 d
k(  xrr t+        |
j(                  «      dkD  xrX |
j(                  d   dk(  xrD t+        |
j(                  «      d	k  xs |
j(                  d   dk7  xr t-        «       xs
 t/        «       }|r�Œ0t        xr |dv xr
 t1        «       }|r�ŒLt3        j4                  d¬«      xr t         xr |dv }|r�Œu|j7                  |	|
d|› �f«       �ŒŽ |s‰S t        j8                  | |||||d¬«      Št;        ˆˆfd„t        D «       «      rt=        dd d ¬«       ‰S |D ]  \  }	}
}t?        |	|
|¬«       Œ tA        ||||¬«       ‰S )N)ro   rp   rq   ÚisolatedrN   Úpypyr`   ÚpythonÚheadersr)   r   r	   é   )ÚusrÚlocalr}   é   r~   T)Ú
check_home)r{   ÚincludeÚplatincludezscheme.)Úignore_config_filesc              3  óB   •K  — | ]  }‰|   t        ‰|«      k7  –— Œ y ­wr8   )r   )r9   r:   Údefault_oldrf   s     €€r!   r;   zget_scheme.<locals>.<genexpr>f  s    øè ø€ Ò
B°ˆ;�q‰>œW S¨!›_Õ,Ñ
Bù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_inrl   rn   )!r
   r   Ú_USE_SYSCONFIGr$   r   ÚpathlibÚPathr   rM   ÚimplementationÚnameÚparentÚ
startswithr   r?   r   r   r-   rW   r   ru   ÚlenrP   rC   ra   r   Úis_python_buildÚappendÚdistutils_schemeÚanyr   rj   rv   )Ú	dist_namero   rp   rq   rx   rN   rg   Ú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_buildr_   r…   rf   s                      @@r!   r   r   Õ   s×  ù€ ô ×
Ñ
ØØØØØØô€Cõ Øˆ
ä
×
Ñ
ØØØØØØô€Cð ÐÜó c?ˆÜ—‘œW S¨!›_Ó-ˆÜ—‘œW S¨!›_Ó-ˆà�EŠ>Øô ×Ñ×#Ñ# vÑ-ò .Ø˜DÐ ò.àÐ+Ð+ò.ð —‘ §¡Ñ,ò.ð —
‘
×%Ñ% hÓ/ò	.ð
 —
‘
×%Ñ% fÓ-ð 	ñ "Øð ò 7Ü Ó"ò7à�Y‘ò7ð —‘×#Ñ# u§|¡|Ñ3ò7ð —‘×!Ñ!×,Ñ,¨XÓ6ð 	-ñ 0Ùð �	Š>Ô5Ô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c?ñJ Øˆ
ô
 ×-Ñ-ØØØØØØØ ô€Kô Ô
B´kÔ
BÔBÜðLð
 Øõ		
ð ˆ
ð .ò 0Ñˆˆu�cÜ˜ ¨3Ö/ð0ä�d ¨D¸Õ@à€Jr    c                 óâ   — t        j                  «       } t        r| S t        j                  «       }t	        t        j                  |«      t        j                  | «      d¬«      r
t        «        |S )NÚ
bin_prefixrl   )r
   r   r‰   r$   rm   rŠ   r‹   rv   ©rg   rf   s     r!   r   r   {  sN   € Ü
×
#Ñ
#Ó
%€CÝØˆ
ä
×
#Ñ
#Ó
%€CÜœŸ™ cÓ*¬G¯L©L¸Ó,=À<ÕPÜŒØ€Jr    c                 óD   — t        j                  dd¬«      j                  S )NÚ T)ro   )r
   r   Úscriptsr   r    r!   r   r   †  s   € Ü× Ñ  ¨$Ô/×7Ñ7Ð7r    c                ó&   — t        «       sy| dk(  ryy)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)rC   )Úvalues    r!   Ú$_looks_like_deb_system_dist_packagesr¨   Š  s   € ô %Ô&ØØÐ0Ò0ØØr    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.r1   rl   )	r
   r   r‰   r$   r¨   rm   rŠ   r‹   rv   r¢   s     r!   r   r   ›  s[   € ä
×
 Ñ
 Ó
"€CÝØˆ
ä
×
 Ñ
 Ó
"€CÜ+¨CÔ0Øˆ
ÜœŸ™ cÓ*¬G¯L©L¸Ó,=À9Õ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#   r)   rl   )
r
   r   r‰   r¤   r$   r¨   rm   rŠ   r‹   rv   )rg   r$   rf   s      r!   r   r   ©  s`   € ä
×
 Ñ
 Ó
"€CÝØˆ
åà
 ˆ*×
 Ñ
 Ó
"€CÜ+¨CÔ0Øˆ
ÜœŸ™ cÓ*¬G¯L©L¸Ó,=À9ÕMÜŒØ€Jr    )Úreturnr   )r3   zdict[str, str]r«   r   )rf   úpathlib.Pathrg   r¬   r_   r   r«   ÚNone)rf   r¬   rg   r¬   r_   r   r«   r   )
ro   r   rp   ú
str | Nonerq   r®   rN   r®   r«   r­   )FNNFN)r•   r   ro   r   rp   r®   rq   r®   rx   r   rN   r®   r«   r   )r«   r   )r§   r   r«   r   )8Ú
__future__r   Ú	functoolsÚloggingrJ   rŠ   rM   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__rc   r   r   Ú__annotations__r"   r‰   r$   ÚDEBUGre   ÚWARNINGr-   r5   Úcacher?   rC   rP   rW   ra   rj   rm   rv   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    