ó
    T=ŒjP  ã                  óD  • S r SSKJr  SSKrSSKrSSK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  SS	KJr  SS
KJr  \(       a  SSKJr  SSKJr  SSKJr  SSKJr  \R8                  " \5      r\	SS j5       r " S S\5      r       SS jr!SS jr" " S S\\ 5      r#g)a&  
Contains command classes which may interact with an index / the network.

Unlike its sister module, req_command, this module still uses lazy imports
so commands which don't always hit the network (e.g. list w/o --outdated or
--uptodate) don't need waste time importing PipSession and friends.
é    )ÚannotationsN)ÚIterator)Ú	lru_cache)ÚValues)ÚTYPE_CHECKING)Úcertifi)ÚCommand)ÚCommandContextMixIn)Ú
SSLContext)ÚNormalizedName©Ú
PipSession)ÚUpgradePromptc                 ó0  •  SS K n  SSKJn  UR                  U R                  5      nUR                  [        R                  " 5       5        U$ ! [         a    [        R                  S5         g f = f! [         a    [        R                  S5         g f = f)Nr   z1Disabling truststore since ssl support is missing)Ú
truststorez5Disabling truststore because platform isn't supported)ÚsslÚImportErrorÚloggerÚwarningÚpip._vendorr   r   ÚPROTOCOL_TLS_CLIENTÚload_verify_locationsr   Úwhere)r   r   Úctxs      Úc/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/cli/index_command.pyÚ_create_truststore_ssl_contextr   #   s„   € ðÛð
Ý*ð
 ×
Ñ
 × 7Ñ 7Ó
8€CØ×ÑœgŸmšm›oÔ.Ø€Jøô ó Ü�‰ÐJÔKÙðûô ó Ü�‰ÐNÔOÙðús"   ‚A ‡A3 ÁA0Á/A0Á3BÂBc                  ón   ^ • \ rS rSrSrSU 4S jjr\S	S j5       rS
S jr  S       SS jjr	Sr
U =r$ )ÚSessionCommandMixiné6   z=
A class mixin for command classes needing _build_session().
c                ó0   >• [         TU ]  5         S U l        g )N)ÚsuperÚ__init__Ú_session)ÚselfÚ	__class__s    €r   r"   ÚSessionCommandMixin.__init__;   s   ø€ Ü‰ÑÔØ+/ˆ�ó    c                óÔ   • / n[        USS5      (       d%  [        USS5      nU(       a  UR                  U5        [        USS5      nU(       a  UR                  U5        U=(       d    S$ )z7Return a list of index urls from user-provided options.Úno_indexFÚ	index_urlNÚextra_index_urls)ÚgetattrÚappendÚextend)ÚclsÚoptionsÚ
index_urlsÚurlÚurlss        r   Ú_get_index_urlsÚ#SessionCommandMixin._get_index_urls?   sb   € ð ˆ
Ü�w 
¨E×2Ñ2Ü˜' ;°Ó5ˆCÞØ×!Ñ! #Ô&Ü�wÐ 2°DÓ9ˆÞØ×Ñ˜dÔ#à×!˜TÐ!r'   c                óœ   • U R                   c4  U R                  U R                  U5      5      U l         U R                   c   eU R                   $ )zGet a default-managed session.)r#   Úenter_contextÚ_build_session)r$   r0   s     r   Úget_default_sessionÚ'SessionCommandMixin.get_default_sessionM   sE   € à�=‰=Ñ Ø ×.Ñ.¨t×/BÑ/BÀ7Ó/KÓLˆDŒMð —=‘=Ñ,Ð,Ð,Ø�}‰}Ðr'   c                óô  • SSK Jn  UR                  nU(       a&  [        R                  R                  U5      (       d   eSUR                  ;  a  [        5       nOS nU" U(       a   [        R                  R                  US5      OS Ub  UOUR                  UR                  UR                  U R                  U5      U[        US[        5       5      S9nUR                  (       a  UR                  Ul        UR"                  (       a  UR"                  Ul        UR$                  (       d  U(       a  Ub  UOUR$                  Ul        UR&                  c  UR(                  (       aX  UR&                  (       a  UR&                  UR&                  S.Ul        SUl        UR&                  Ul        UR(                  Ul        UR2                  (       + UR4                  l        UR8                  UR4                  l        U$ )	Nr   r   zlegacy-certszhttp-v2Úrefresh_package)ÚcacheÚretriesÚresume_retriesÚtrusted_hostsr1   Ússl_contextr<   )ÚhttpÚhttpsF)Úpip._internal.network.sessionr   Ú	cache_dirÚosÚpathÚisabsÚdeprecated_features_enabledr   Újoinr>   r?   r@   r4   r,   ÚsetÚcertÚverifyÚclient_certÚtimeoutÚproxyÚno_proxy_envÚproxiesÚ	trust_envÚ	pip_proxyÚpip_no_proxy_envÚno_inputÚauthÚ	promptingÚkeyring_provider)r$   r0   r>   rO   r   rE   rA   Úsessions           r   r8   Ú"SessionCommandMixin._build_sessionW   su  € õ 	=à×%Ñ%ˆ	Þ¤§¡§¡¨i× 8Ñ 8Ð8Ð8à ×!DÑ!DÓDÜ8Ó:‰KàˆKáÞ8A”"—'‘'—,‘,˜y¨)Ô4ÀtØ&Ñ2‘G¸¿¹Ø"×1Ñ1Ø!×/Ñ/Ø×+Ñ+¨GÓ4Ø#Ü# GÐ->ÄÃÓFñ
ˆð �<�<Ø$Ÿ\™\ˆGŒNð ××Ø"×.Ñ.ˆGŒLð �?�?žgØ)0Ñ)<™gÀ'Ç/Á/ˆGŒOð �=‰=Ñ$¨×(<×(<Ø�}�}à#ŸM™MØ$Ÿ]™]ñ#�”ð !&ˆGÔà '§¡ˆGÔØ'.×';Ñ';ˆGÔ$ð &-×%5Ñ%5Ô!5ˆ�‰ÔØ(/×(@Ñ(@ˆ�‰Ô%àˆr'   )r#   )ÚreturnÚNone)r0   r   r\   zlist[str] | None)r0   r   r\   r   )NN)r0   r   r>   ú
int | NonerO   r^   r\   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r"   Úclassmethodr4   r9   r8   Ú__static_attributes__Ú__classcell__)r%   s   @r   r   r   6   s^   ø† ñ÷0ð ó"ó ð"ôð #Ø"ð	7àð7ð ð7ð ð	7ð
 
÷7ó 7r'   r   c                ó   • SSK Jn  U" X5      $ )Nr   )Úpip_self_version_check_fetch)Ú!pip._internal.self_outdated_checkrh   )rZ   r0   rh   s      r   Ú_pip_self_version_check_fetchrj   ‘   s   € õ Oá'¨Ó9Ð9r'   c                ó    • SSK Jn  U" U 5        g )Nr   )Úpip_self_version_check_emit)ri   rl   )Úupgrade_promptrl   s     r   Ú_pip_self_version_check_emitrn   ™   s   € ÝMá Õ/r'   c                  óV   • \ rS rSrSr      SS jr\R                  SS j5       rSr	g)	ÚIndexGroupCommandéŸ   zŠ
Abstract base class for commands with the index_group options.

This also corresponds to the commands that permit the pip version check.
c                ót   • UR                   (       a'  UR                   R                  U5      nUSL a  gUSL a  gg)z=
Determine if pre-releases should be excluded for a package.
TF)Úrelease_controlÚallows_prereleases)r$   r0   Úpackage_nameÚallow_prereleasess       r   Úshould_exclude_prereleaseÚ+IndexGroupCommand.should_exclude_prerelease¦   s?   € ð ×"×"Ø '× 7Ñ 7× JÑ JÈ<Ó XÐØ  DÒ(ØØ" eÒ+Øð r'   c              #  ó¸  #   • [        US5      (       d   eUR                  (       d  UR                  (       a  Sv •  gSn U R                  US[	        SUR
                  5      S9nU   [        XA5      nSSS5         Sv •   [        U5        g! , (       d  f       N = f! [         a,    [        R                  S5        [        R                  SSS	9   NXf = f! [         a,    [        R                  S5        [        R                  SSS	9   gf = f!  [        U5        f ! [         a,    [        R                  S5        [        R                  SSS	9   f f = f= f7f)
zh
Do the pip version check if not disabled.

This overrides the default behavior of not doing the check.
r)   Nr   é   )r>   rO   z6There was an error checking the latest version of pip.zSee below for errorT)Úexc_info)ÚhasattrÚdisable_pip_version_checkr)   r8   ÚminrO   rj   Ú	Exceptionr   r   Údebugrn   )r$   r0   Úargsrm   rZ   s        r   Úpip_version_checkÚ#IndexGroupCommand.pip_version_check·   s/  é € ô �w 
×+Ñ+Ð+Ð+à×,×,°×0@×0@ÛØà/3ˆð
	?Ø×)Ñ)ØØÜ˜A˜wŸ™Ó/ð *ð ˆGò
 Ü!>¸wÓ!P�÷ ð	CÛðCÜ,¨^Õ<÷ •ûäó 	?Ü�N‰NÐSÔTÜ�L‰LÐ.¸ˆLÓ>ð	?ûô ó CÜ—‘ÐWÔXÜ—‘Ð2¸T�ÓBðCûðCÜ,¨^Õ<øÜó CÜ—‘ÐWÔXÜ—‘Ð2¸T�ÓBðCÿs¡   ‚=EÁ 'B Á'BÁ3B Á<D ÂC ÂEÂ
BÂB ÂEÂB Â3CÃEÃCÃEÃ3DÄ
EÄDÄEÄEÄDÄEÄ3EÅEÅEÅEÅE© N)r0   r   ru   r   r\   Úbool)r0   r   r�   z	list[str]r\   zIterator[None])
r_   r`   ra   rb   rc   rw   Ú
contextlibÚcontextmanagerr‚   re   r„   r'   r   rp   rp   Ÿ   s@   † ñðØðØ-;ðà	ôð" ×Ñó!Có ó!Cr'   rp   )r\   zSSLContext | None)rZ   r   r0   r   r\   úUpgradePrompt | None)rm   rˆ   r\   r]   )$rc   Ú
__future__r   r†   ÚloggingrF   Úcollections.abcr   Ú	functoolsr   Úoptparser   Útypingr   r   r   Úpip._internal.cli.base_commandr	   Ú!pip._internal.cli.command_contextr
   r   r   Úpip._vendor.packaging.utilsr   rD   r   ri   r   Ú	getLoggerr_   r   r   r   rj   rn   rp   r„   r'   r   Ú<module>r“      s£   ðñõ #ã Û Û 	Ý $Ý Ý Ý  å å 2Ý AæÝå:å8Ý?à	×	Ò	˜8Ó	$€ð óó ðô$XÐ-ô Xðv:Øð:Ø"(ð:àô:ô0ô:C˜Ð!4õ :Cr'   