ó
    Þ jü  ã            	       óÆ  • 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JrJrJr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%  \(       a   " S S\5      r&\ RN                  " \(5      r) " S S\\5      r*S\\\+\+4      S\S   4S jr,S\+S\+SS4S jr-  SS\S   S\\.   S\\.   SS4S jjr/S\\+   S\+4S jr0g)é    N)ÚOrderedDict)ÚValues)ÚTYPE_CHECKINGÚDictÚListÚOptionalÚ	TypedDict)Úparse)ÚCommand)ÚSessionCommandMixin)ÚNO_MATCHES_FOUNDÚSUCCESS)ÚCommandError)Úget_default_environment)ÚPyPI)ÚPipXmlrpcTransport)Ú
indent_log)Úwrite_outputc                   ó:   • \ rS rSr% \\S'   \\S'   \\   \S'   Srg)ÚTransformedHité   ÚnameÚsummaryÚversions© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__r   Ú__static_attributes__r   ó    ÚW/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/commands/search.pyr   r      s   ‡ Ø‹	Ø‹Ø�s‘)Ör#   r   c            	       ór   • \ rS rSrSrSrSrSS jrS\S	\	\
   S\4S
 jrS\	\
   S\S\	\\
\
4      4S jrSrg)ÚSearchCommandé!   z@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>TÚreturnNc           	      ó¨   • 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#   ÚoptionsÚargsc                 ó  • 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   )r5   r8   r9   ÚqueryÚ	pypi_hitsÚhitsr;   s          r$   ÚrunÚSearchCommand.run4   so   € ÞÜÐJÓKÐKØˆØ—K‘K Ó/ˆ	Ü˜iÓ(ˆàˆÜ�:‰:×Ñ×ÑÜ#×5Ò5Ó7¸Ñ:ˆNä�dÒ:ÞÜˆNÜÐr#   rD   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ÚServerProxyr<   ÚFaultÚ	faultCodeÚfaultStringr   Ú
isinstanceÚlist)
r5   rD   r8   Ú	index_urlÚsessionÚ	transportÚpypirF   ÚfaultÚmessages
             r$   r<   ÚSearchCommand.searchD   sµ   € Ø—M‘Mˆ	à×*Ñ*¨7Ó3ˆä& yÓ:ˆ	Ü�}‰}×(Ñ(¨Ó>ˆð	(Ø—;‘;¨Ñ@À$ÓGˆDô ˜$¤×%Ñ%Ð%Ð%Øˆøô �}‰}×"Ñ"ó 	(à/°·±Ð/@ÀÀE×DUÑDUÐCVÐWð ô ˜wÓ'Ð'ûð		(ús   Á	A6 Á6C Â'B;Â;C r   )r(   N)r   r   r   r   Ú__doc__ÚusageÚignore_require_venvr6   r   r   r    ÚintrG   r   r<   r"   r   r#   r$   r&   r&   !   s`   † ÙJð!€EàÐô
:ð ˜6ð  ¨¨c©ð  °sô  ð ˜D ™Ið °ð ¸4ÀÀSÈ#ÀXÁÑ;O÷ r#   r&   rF   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_versionrS   Úvalues)rF   ÚpackagesÚhitr   r   r`   s         r$   r=   r=   V   s�   € ô -8«M€HÛˆØ�6‰{ˆØ�i‘.ˆØ�i‘.ˆà—}‘}“Ó&àØ"Ø$˜IñˆH‹Nð ‰N˜:Ñ&×-Ñ-¨gÔ6ð œ/¨(©.¸Ñ*DÓEÕEØ,3˜‘˜yÓ)ñ! ô$ �—‘Ó!Ó"Ð"r#   r   Úlatestc                 ój  • [        5       nUR                  U 5      n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   Úget_distributionr   r`   r   Úparse_versionÚpre)r   rg   ÚenvÚdists       r$   Úprint_dist_installation_inforn   r   sŠ   € Ü
!Ó
#€CØ×Ñ Ó%€DØÑÜ�\Ø�|‰|˜vÓ%ÜÐ5°t·|±|ÕDä˜_¨d¯l©lÔ;Ü  Ó(×,×,Ü ð5àõô ! °&Ô9÷ ˆ\ð ß�\ús   ©A1B$Â$
B2Úname_column_widthr;   c                 ó$  • U (       d  g UcP  [        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        [        XF5        M›     g s  snf ! [         a     M°  f = f)Nr   r   Ú-é   r   Ú é   é
   Ú
Ú é   z (Ú)z - )
ÚmaxÚlenrc   ÚgetÚtextwrapÚwrapÚjoinr   rn   ÚUnicodeEncodeError)rF   ro   r;   rf   r   r   rg   Útarget_widthÚsummary_linesÚname_latestÚlines              r$   rC   rC   …   sA  € ö
 ØØÑ äñ  $óá#˜ô ˜˜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Ð?ˆð	Ü˜ÔÜ(¨Ö6ò ùòøô0 "ó 	Úð	ús   •=C<Ã!DÄ
DÄDr   c                 ó   • [        U [        S9$ )N)Úkey)rz   rj   )r   s    r$   rc   rc   «   s   € Üˆxœ]Ñ+Ð+r#   )NN)1ÚloggingrA   r>   r}   Úxmlrpc.clientrL   Úcollectionsr   Úoptparser   Útypingr   r   r   r   r	   Úpip._vendor.packaging.versionr
   rj   Úpip._internal.cli.base_commandr   Úpip._internal.cli.req_commandr   Úpip._internal.cli.status_codesr   r   Úpip._internal.exceptionsr   Úpip._internal.metadatar   Úpip._internal.models.indexr   Úpip._internal.network.xmlrpcr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Ú	getLoggerr   Úloggerr&   r    r=   rn   r^   rC   rc   r   r#   r$   Ú<module>r˜      s  ðÛ Û Û 
Û Û Ý #Ý ß AÕ Aå @å 2Ý =ß DÝ 1Ý :Ý +Ý ;Ý 2Ý 1æô˜ô ð 
×	Ò	˜8Ó	$€ô2�GÐ0ô 2ðj#˜˜d 3¨ 8™nÑ-ð #°$Ð7GÑ2Hô #ð8: sð :°Cð :¸Dô :ð* (,Ø$(ñ#Ø
ÐÑ
 ð#à ‘}ð#ð ˜S‘Mð#ð 
õ	#ðL,˜d 3™ið ,¨Cõ ,r#   