Ë
    ÌiT  ã                  ó  — d Z ddlmZ ddlZddlZddl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 dd	lmZ erdd
lmZ ddlmZ ddlmZ  ej0                  e«      Zedd„«       Z G d„ de«      Zdd„Z G d„ dee«      Zy)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)Ú	lru_cache)ÚValues)ÚTYPE_CHECKING)Úcertifi)ÚCommand)ÚCommandContextMixIn)Ú
SSLContext)ÚNormalizedName©Ú
PipSessionc                 ó|  — t         j                  dk  rt        j                  d«       y 	 dd l} 	 ddlm} |j                  | j                  «      }|j                  t        j                  «       «       |S # t
        $ r t        j                  d«       Y y w xY w# t
        $ r t        j                  d«       Y y w xY w)N)é   é
   z7Disabling truststore because Python version isn't 3.10+r   z1Disabling truststore since ssl support is missing)Ú
truststorez5Disabling truststore because platform isn't supported)ÚsysÚversion_infoÚloggerÚdebugÚsslÚImportErrorÚwarningÚpip._vendorr   r
   ÚPROTOCOL_TLS_CLIENTÚload_verify_locationsr   Úwhere)r   r   Úctxs      ú`/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/pip/_internal/cli/index_command.pyÚ_create_truststore_ssl_contextr   !   s¢   € ä
×Ñ˜'Ò!Ü�‰ÐNÔOØðÛð
Ý*ð
 ×
Ñ
 × 7Ñ 7Ó
8€CØ×ÑœgŸm™m›oÔ.Ø€Jøô ò Ü�‰ÐJÔKÙðûô ò Ü�‰ÐNÔOÙðús"   «A6 °B Á6BÂBÂB;Â:B;c                  óZ   ‡ — e Zd ZdZdˆ fd„Zedd„«       Zdd„Z	 	 d		 	 	 	 	 	 	 d
d„Zˆ xZ	S )ÚSessionCommandMixinzE
    A class mixin for command classes needing _build_session().
    c                ó0   •— t         ‰| �  «        d | _        y )N)ÚsuperÚ__init__Ú_session)ÚselfÚ	__class__s    €r   r$   zSessionCommandMixin.__init__=   s   ø€ Ü‰ÑÔØ+/ˆ�ó    c                ó¬   — g }t        |dd«      s t        |dd«      }|r|j                  |«       t        |dd«      }|r|j                  |«       |xs 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_urlsz#SessionCommandMixin._get_index_urlsA   s_   € ð ˆ
Ü�w 
¨EÔ2Ü˜' ;°Ó5ˆCÙØ×!Ñ! #Ô&Ü�wÐ 2°DÓ9ˆÙØ×Ñ˜dÔ#àÒ!˜TÐ!r(   c                ó˜   — | j                   €3| j                  | j                  |«      «      | _         | j                   €J ‚| j                   S )zGet a default-managed session.)r%   Úenter_contextÚ_build_session)r&   r1   s     r   Úget_default_sessionz'SessionCommandMixin.get_default_sessionO   sE   € à�=‰=Ð Ø ×.Ñ.¨t×/BÑ/BÀ7Ó/KÓLˆDŒMð —=‘=Ð,Ð,Ð,Ø�}‰}Ðr(   c           	     ó  — ddl m} |j                  }|r!t        j                  j                  |«      sJ ‚d|j                  vrt        «       }nd } ||r t        j                  j                  |d«      nd |�|n|j                  |j                  |j                  | j                  |«      |¬«      }|j                  r|j                  |_        |j                  r|j                  |_        |j                   s|r|�|n|j                   |_        |j"                  r6|j"                  |j"                  dœ|_        d|_        |j"                  |_        |j*                   |j,                  _        |j0                  |j,                  _        |S )Nr   r   zlegacy-certszhttp-v2)ÚcacheÚretriesÚresume_retriesÚtrusted_hostsr2   Ússl_context)ÚhttpÚhttpsF)Úpip._internal.network.sessionr   Ú	cache_dirÚosÚpathÚisabsÚdeprecated_features_enabledr   Újoinr<   r=   r>   r5   ÚcertÚverifyÚclient_certÚtimeoutÚproxyÚproxiesÚ	trust_envÚ	pip_proxyÚno_inputÚauthÚ	promptingÚkeyring_provider)r&   r1   r<   rL   r   rC   r?   Úsessions           r   r8   z"SessionCommandMixin._build_sessionY   sC  € õ 	=à×%Ñ%ˆ	Ù¤§¡§¡¨iÔ 8Ð8Ð8à ×!DÑ!DÑDÜ8Ó:‰KàˆKáÙ8A”"—'‘'—,‘,˜y¨)Ô4ÀtØ&Ð2‘G¸¿¹Ø"×1Ñ1Ø!×/Ñ/Ø×+Ñ+¨GÓ4Ø#ô
ˆð �<Š<Ø$Ÿ\™\ˆGŒNð ×ÒØ"×.Ñ.ˆGŒLð �?Š?™gØ)0Ð)<™gÀ'Ç/Á/ˆGŒOð �=Š=àŸ™Ø Ÿ™ñˆGŒOð !&ˆGÔØ '§¡ˆGÔð &-×%5Ñ%5Ð!5ˆ�‰ÔØ(/×(@Ñ(@ˆ�‰Ô%àˆr(   )ÚreturnÚNone)r1   r   rV   zlist[str] | None)r1   r   rV   r   )NN)r1   r   r<   ú
int | NonerL   rX   rV   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   Úclassmethodr5   r9   r8   Ú__classcell__)r'   s   @r   r!   r!   8   sY   ø„ ñõ0ð ò"ó ð"óð #Ø"ð	2àð2ð ð2ð ð	2ð
 
÷2r(   r!   c                ó"   — ddl m}  || |«       y )Nr   )Úpip_self_version_check)Ú!pip._internal.self_outdated_checkr`   )rU   r1   Úchecks      r   Ú_pip_self_version_checkrc   Ž   s   € ÝQá	ˆ'�7Õr(   c                  ó,   — e Zd ZdZ	 	 	 	 	 	 dd„Zdd„Zy)ÚIndexGroupCommandz–
    Abstract base class for commands with the index_group options.

    This also corresponds to the commands that permit the pip version check.
    c                óf   — |j                   r%|j                   j                  |«      }|du ry|du ryy)zM
        Determine if pre-releases should be excluded for a package.
        TF)Úrelease_controlÚallows_prereleases)r&   r1   Úpackage_nameÚallow_prereleasess       r   Úshould_exclude_prereleasez+IndexGroupCommand.should_exclude_prerelease›   s?   € ð ×"Ò"Ø '× 7Ñ 7× JÑ JÈ<Ó XÐØ  DÑ(ØØ" eÑ+Øð r(   c                ó`  — t        |d«      sJ ‚|j                  s|j                  ry	 | j                  |dt	        d|j
                  «      ¬«      }|5  t        ||«       ddd«       y# 1 sw Y   yxY w# t        $ r/ t        j                  d«       t        j                  dd¬	«       Y yw xY w)
z€
        Do the pip version check if not disabled.

        This overrides the default behavior of not doing the check.
        r*   Nr   é   )r<   rL   z6There was an error checking the latest version of pip.zSee below for errorT)Úexc_info)ÚhasattrÚdisable_pip_version_checkr*   r8   ÚminrL   rc   Ú	Exceptionr   r   r   )r&   r1   rU   s      r   Úhandle_pip_version_checkz*IndexGroupCommand.handle_pip_version_check¬   s¦   € ô �w 
Ô+Ð+Ð+à×,Ò,°×0@Ò0@Øð	?à×)Ñ)ØØÜ˜A˜wŸ™Ó/ð *ó ˆGð
 ñ :Ü'¨°Ô9÷:÷ :ñ :ûäò 	?Ü�N‰NÐSÔTÜ�L‰LÐ.¸ˆLÖ>ð	?ús/   ©*A5 ÁA)Á A5 Á)A2Á.A5 Á2A5 Á55B-Â,B-N)r1   r   ri   r   rV   Úbool)r1   r   rV   rW   )rY   rZ   r[   r\   rk   rs   © r(   r   re   re   ”   s)   „ ñðØðØ-;ðà	óô"?r(   re   )rV   zSSLContext | None)rU   r   r1   r   rV   rW   )r\   Ú
__future__r   ÚloggingrD   r   Ú	functoolsr   Úoptparser   Útypingr   r   r   Úpip._internal.cli.base_commandr   Ú!pip._internal.cli.command_contextr	   r   r
   Úpip._vendor.packaging.utilsr   rB   r   Ú	getLoggerrY   r   r   r!   rc   re   ru   r(   r   ú<module>r      s€   ðñõ #ã Û 	Û 
Ý Ý Ý  å å 2Ý AáÝå:å8à	ˆ×	Ñ	˜8Ó	$€ð òó ðô,SÐ-ô Sólô/?˜Ð!4õ /?r(   