ó
    T=Œj–  ã                  ó~  • 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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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#  S SK$J%r%   " S S\5      r&\RN                  " \(5      r) " S S\\5      r*SS jr+SS jr,SS jr-  S       SS jjr.SS jr/g) é    )ÚannotationsN)ÚOrderedDict)ÚValues)Ú	TypedDict)Úparse)ÚCommand)ÚSessionCommandMixin)ÚNO_MATCHES_FOUNDÚSUCCESS)ÚCommandError)Úget_default_environment)ÚBaseDistribution)ÚPyPI)ÚPipXmlrpcTransport)Ú
indent_log)Úwrite_outputc                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg)	ÚTransformedHité   ÚstrÚnameÚsummaryú	list[str]Úversions© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   ó    Úa/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/commands/search.pyr   r      s   ‡ Ø
ƒIØƒLØÖr"   r   c                  ó>   • \ rS rSrSrSrSrS
S jrSS jrSS jr	Sr
g	)ÚSearchCommandé#   z@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>Tc           	     ó¨   • U R                   R                  SSSS[        R                  SS9  U R                  R                  SU R                   5        g )Nz-iz--indexÚindexÚURLz3Base URL of Python Package Index (default %default))ÚdestÚmetavarÚdefaultÚhelpr   )Úcmd_optsÚ
add_optionr   Úpypi_urlÚparserÚinsert_option_group)Úselfs    r#   Úadd_optionsÚSearchCommand.add_options*   sI   € Ø�‰× Ñ ØØØØÜ—M‘MØFð 	!ñ 	
ð 	�‰×'Ñ'¨¨4¯=©=Õ9r"   c                ó  • U(       d  [        S5      eUnU R                  X15      n[        U5      nS n[        R                  R                  5       (       a  [        R                  " 5       S   n[        XVS9  U(       a  [        $ [        $ )Nz)Missing required argument (search query).r   )Úterminal_width)r   ÚsearchÚtransform_hitsÚsysÚstdoutÚisattyÚshutilÚget_terminal_sizeÚprint_resultsr   r
   )r3   ÚoptionsÚargsÚqueryÚ	pypi_hitsÚhitsr7   s          r#   ÚrunÚSearchCommand.run6   so   € ÞÜÐJÓKÐKØˆØ—K‘K Ó/ˆ	Ü˜iÓ(ˆàˆÜ�:‰:×Ñ×ÑÜ#×5Ò5Ó7¸Ñ:ˆNä�dÒ:ÞÜˆNÜÐr"   c                ó†  • UR                   nU R                  U5      n[        X45      n[        R                  R                  X55      n UR                  XS.S5      n[        U[        5      (       d   eU$ ! [        R                  R                   a,  nSUR                   SUR                   3n	[        U	5      eS nAff = f)N)r   r   ÚorzXMLRPC request failed [code: z]
)r(   Úget_default_sessionr   ÚxmlrpcÚclientÚServerProxyr8   ÚFaultÚ	faultCodeÚfaultStringr   Ú
isinstanceÚlist)
r3   rB   r@   Ú	index_urlÚsessionÚ	transportÚpypirD   ÚfaultÚmessages
             r#   r8   ÚSearchCommand.searchF   sµ   € Ø—M‘Mˆ	à×*Ñ*¨7Ó3ˆä& yÓ:ˆ	Ü�}‰}×(Ñ(¨Ó>ˆð	(Ø—;‘;¨Ñ@À$ÓGˆDô ˜$¤×%Ñ%Ð%Ð%Øˆøô �}‰}×"Ñ"ó 	(à/°·±Ð/@ÀÀE×DUÑDUÐCVÐWð ô ˜wÓ'Ð'ûð		(ús   Á	A6 Á6C Â'B;Â;C r   N)ÚreturnÚNone)r@   r   rA   r   rY   Úint)rB   r   r@   r   rY   úlist[dict[str, str]])r   r   r   r   Ú__doc__ÚusageÚignore_require_venvr4   rE   r8   r!   r   r"   r#   r%   r%   #   s!   † ÙJð!€EàÐô
:ô ÷ r"   r%   c                ó  • [        5       nU  Hc  nUS   nUS   nUS   nX1R                  5       ;  a  UUU/S.X'   M0  X   S   R                  U5        U[        X   S   5      :X  d  M\  XAU   S'   Me     [	        UR                  5       5      $ )z¬
The list from pypi is really a list of versions. We want a list of
packages with the list of versions stored inline. This converts the
list from pypi into one we can use.
r   r   Úversion)r   r   r   r   )r   ÚkeysÚappendÚhighest_versionrQ   Úvalues)rD   ÚpackagesÚhitr   r   ra   s         r#   r9   r9   X   s�   € ô +6«-€HÛˆØ�6‰{ˆØ�i‘.ˆØ�i‘.ˆà—}‘}“Ó&àØ"Ø$˜IñˆH‹Nð ‰N˜:Ñ&×-Ñ-¨gÔ6ð œ/¨(©.¸Ñ*DÓEÕEØ,3˜‘˜yÓ)ñ! ô$ �—‘Ó!Ó"Ð"r"   c                ó4  • Ub„  [        5          UR                  U :X  a  [        SUR                  5        OI[        SUR                  5        [        U 5      R                  (       a  [        SU 5        O[        SU 5        S S S 5        g g ! , (       d  f       g = f)NzINSTALLED: %s (latest)zINSTALLED: %sz=LATEST:    %s (pre-release; install with `pip install --pre`)zLATEST:    %s)r   ra   r   Úparse_versionÚpre)ÚlatestÚdists     r#   Úprint_dist_installation_inform   t   sr   € ØÑÜ�\Ø�|‰|˜vÓ%ÜÐ5°t·|±|ÕDä˜_¨d¯l©lÔ;Ü  Ó(×,×,Ü ð5àõô ! °&Ô9÷ ˆ\ð ß�\ús   ŽA1B	Â	
Bc                ó8   • [        5       nUR                  U 5      $ )N)r   Úget_distribution)r   Úenvs     r#   Úget_installed_distributionrq   …   s   € Ü
!Ó
#€CØ×Ñ Ó%Ð%r"   c                ó<  • U (       d  g UcQ  [        U  Vs/ s H7  n[        US   5      [        [        UR                  SS/5      5      5      -   PM9     sn5      S-   nU  H¤  nUS   nUS   =(       d    Sn[        UR                  SS/5      5      nUb=  X!-
  S-
  nUS:”  a0  [        R
                  " XW5      nS	S
US-   -  -   R                  U5      nU SU S3n	X‘  SU 3n
 [        U
5        [        U5      n[        Xk5        M¦     g s  snf ! [         a     M»  f = f)Nr   r   Ú-é   r   Ú é   é
   Ú
Ú é   z (Ú)z - )ÚmaxÚlenrd   ÚgetÚtextwrapÚwrapÚjoinr   rq   rm   ÚUnicodeEncodeError)rD   Úname_column_widthr7   rg   r   r   rk   Útarget_widthÚsummary_linesÚname_latestÚlinerl   s               r#   r?   r?   Š   sK  € ö
 ØØÑ äñ  $óâ#˜ô ˜˜F™Ó$¤s¬?¸3¿7¹7À:ÐPSÈuÓ;UÓ+VÓ'WÔWÙ#ñóð ñð 	ó ˆØ�6‰{ˆØ�i‘.×& BˆÜ  §¡¨°c°UÓ!;Ó<ˆØÑ%Ø)Ñ=ÀÑAˆLØ˜bÓ ä (§¢¨gÓ D�Ø #Ð):¸QÑ)>Ñ"?Ñ?×EÑEÀmÓT�à˜˜b  ¨Ð*ˆØÐ1Ð2°#°g°YÐ?ˆð	Ü˜ÔÜ-¨dÓ3ˆDÜ(¨Ö6ò! ùòøô2 "ó 	Úð	ús   •>DÃ"!DÄ
DÄDc                ó   • [        U [        S9$ )N)Úkey)r|   ri   )r   s    r#   rd   rd   ±   s   € Üˆxœ]Ñ+Ð+r"   )rD   r\   rY   úlist[TransformedHit])rk   r   rl   úBaseDistribution | NonerY   rZ   )r   r   rY   r‹   )NN)rD   rŠ   rƒ   ú
int | Noner7   rŒ   rY   rZ   )r   r   rY   r   )0Ú
__future__r   Úloggingr=   r:   r   Úxmlrpc.clientrJ   Úcollectionsr   Úoptparser   Útypingr   Úpip._vendor.packaging.versionr   ri   Úpip._internal.cli.base_commandr   Úpip._internal.cli.req_commandr	   Úpip._internal.cli.status_codesr
   r   Úpip._internal.exceptionsr   Úpip._internal.metadatar   Úpip._internal.metadata.baser   Úpip._internal.models.indexr   Úpip._internal.network.xmlrpcr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Ú	getLoggerr   Úloggerr%   r9   rm   rq   r?   rd   r   r"   r#   Ú<module>r       sµ   ðÝ "ã Û Û 
Û Û Ý #Ý Ý å @å 2Ý =ß DÝ 1Ý :Ý 8Ý +Ý ;Ý 2Ý 1ô�Yô ð 
×	Ò	˜8Ó	$€ô2�GÐ0ô 2ôj#ô8:ô"&ð %)Ø!%ð$Ø
ð$à!ð$ð ð$ð 
õ	$õN,r"   