Ë
    äØjjA  ã            	       óº  — 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 d dlm	Z	 d dl
mZmZmZmZ d dlmZ d dlmZ d dlm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" d dl#m$Z$ erd dl
m%Z%  G d„ de%«      Z& e jN                  e(«      Z) G d„ dee«      Z*deee+e+f      ded   fd„Z,de+de+ddfd„Z-	 	 dded   dee.   dee.   ddfd„Z/dee+   de+fd„Z0y) é    N)ÚOrderedDict)ÚValues)ÚTYPE_CHECKINGÚDictÚListÚOptional)Úparse)ÚCommand)ÚSessionCommandMixin)ÚNO_MATCHES_FOUNDÚSUCCESS)ÚCommandError)Úget_default_environment)ÚPyPI)ÚPipXmlrpcTransport)Ú
indent_log)Úwrite_output)Ú	TypedDictc                   ó2   — e Zd ZU eed<   eed<   ee   ed<   y)ÚTransformedHitÚnameÚsummaryÚversionsN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   © ó    ú_/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/commands/search.pyr   r      s   … Ø‹	Ø‹Ø�s‘)Ôr    r   c            	       ód   — e Zd ZdZdZdZdd„Zdedee	   de
fd	„Zd
ee	   dedeee	e	f      fd„Zy)ÚSearchCommandz@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>TÚreturnNc                 ó®   — | j                   j                  ddddt        j                  d¬«       | j                  j                  d| j                   «       y )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_optionszSearchCommand.add_options)   sI   € Ø�‰× Ñ ØØØØÜ—M‘MØFð 	!ô 	
ð 	�‰×'Ñ'¨¨4¯=©=Õ9r    ÚoptionsÚargsc                 óþ   — |st        d«      ‚|}| j                  ||«      }t        |«      }d }t        j                  j                  «       rt        j                  «       d   }t        ||¬«       |rt        S t        S )Nz)Missing required argument (search query).r   )Úterminal_width)r   ÚsearchÚtransform_hitsÚsysÚstdoutÚisattyÚshutilÚget_terminal_sizeÚprint_resultsr   r   )r1   r3   r4   ÚqueryÚ	pypi_hitsÚhitsr6   s          r!   ÚrunzSearchCommand.run5   sp   € ÙÜÐJÓKÐKØˆØ—K‘K  wÓ/ˆ	Ü˜iÓ(ˆàˆÜ�:‰:×ÑÔÜ#×5Ñ5Ó7¸Ñ:ˆNä�d¨>Õ:ÙÜˆNÜÐr    r?   c                 ó–  — |j                   }| j                  |«      }t        ||«      }t        j                  j                  ||«      }	 |j                  ||dœd«      }t        |t        «      sJ ‚|S # t        j                  j                  $ r7}dj                  |j                  |j                  ¬«      }	t        |	«      ‚d }~ww xY w)N)r   r   Úorz-XMLRPC request failed [code: {code}]
{string})ÚcodeÚstring)r&   Úget_default_sessionr   ÚxmlrpcÚclientÚServerProxyr7   ÚFaultÚformatÚ	faultCodeÚfaultStringr   Ú
isinstanceÚlist)
r1   r?   r3   Ú	index_urlÚsessionÚ	transportÚpypirA   ÚfaultÚmessages
             r!   r7   zSearchCommand.searchE   s½   € Ø—M‘Mˆ	à×*Ñ*¨7Ó3ˆä& y°'Ó:ˆ	Ü�}‰}×(Ñ(¨°IÓ>ˆð	(Ø—;‘;¨¸%Ñ@À$ÓGˆDô ˜$¤Ô%Ð%Ð%Øˆøô �}‰}×"Ñ"ò 	(ØF×MÑMØ—_‘_Ø×(Ñ(ð Nó ˆGô ˜wÓ'Ð'ûð	(ús   ÁA4 Á4CÂ2CÃC)r$   N)r   r   r   Ú__doc__ÚusageÚignore_require_venvr2   r   r   r   ÚintrB   r   r7   r   r    r!   r#   r#   "   s`   „ ÙJð!€EàÐó
:ð ˜6ð  ¨¨c©ð  °só  ð ˜D ™Ið °ð ¸4ÀÀSÈ#ÀXÁÑ;Oô r    r#   rA   r$   c                 ó  — t        «       }| D ]b  }|d   }|d   }|d   }||j                  «       vr|||gdœ||<   Œ/||   d   j                  |«       |t        ||   d   «      k(  sŒ[|||   d<   Œd t	        |j                  «       «      S )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_versionrP   Úvalues)rA   ÚpackagesÚhitr   r   r\   s         r!   r8   r8   X   s¬   € ô -8«M€HØò 4ˆØ�6‰{ˆØ�i‘.ˆØ�i‘.ˆà�x—}‘}“Ñ&àØ"Ø$˜IñˆH�TŠNð �T‰N˜:Ñ&×-Ñ-¨gÔ6ð œ/¨(°4©.¸Ñ*DÓEÓEØ,3�˜‘˜yÒ)ð!4ô$ �—‘Ó!Ó"Ð"r    r   Úlatestc                 óR  — t        «       }|j                  | «      }|�~t        «       5  |j                  |k(  rt	        d|j                  «       nDt	        d|j                  «       t        |«      j                  rt	        d|«       nt	        d|«       d d d «       y y # 1 sw Y   y xY w)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   rc   ÚenvÚdists       r!   Úprint_dist_installation_inforj   t   s—   € Ü
!Ó
#€CØ×Ñ Ó%€DØÐÜ‹\ñ 	:Ø�|‰|˜vÒ%ÜÐ5°t·|±|ÕDä˜_¨d¯l©lÔ;Ü  Ó(×,Ò,Ü ð5àõô ! °&Ô9÷	:ð 	:ð ÷	:ð 	:ús   ¨A+BÂB&Úname_column_widthr6   c                 ó  — | sy |€Nt        | D �cg c]6  }t        |d   «      t        t        |j                  ddg«      «      «      z   ‘Œ8 c}«      dz   }| D ]–  }|d   }|d   xs d}t        |j                  ddg«      «      }|�=||z
  dz
  }|dkD  r0t	        j
                  ||«      }d	d
|dz   z  z   j                  |«      }|› d|› d�}	|	|› d�›d|› �}
	 t        |
«       t        ||«       Œ˜ y c c}w # t        $ r Y Œªw xY w)Nr   r   ú-é   r   Ú é   é
   ú
ú é   z (ú)z - )
ÚmaxÚlenr_   ÚgetÚtextwrapÚwrapÚjoinr   rj   ÚUnicodeEncodeError)rA   rk   r6   rb   r   r   rc   Útarget_widthÚsummary_linesÚname_latestÚlines              r!   r>   r>   ‡   sP  € ñ
 ØØÐ äð  $öàô ˜˜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  ¨Ð*ˆØÐ0Ð1°Ð1Ð2°#°g°YÐ?ˆð	Ü˜ÔÜ(¨¨vÕ6ñùòøô0 "ò 	Ùð	ús   �;C0ÃC5Ã5	DÄ Dr   c                 ó$   — t        | t        ¬«      S )N)Úkey)rv   rf   )r   s    r!   r_   r_   ­   s   € Üˆxœ]Ô+Ð+r    )NN)1Úloggingr<   r9   ry   Úxmlrpc.clientrH   Úcollectionsr   Úoptparser   Útypingr   r   r   r   Úpip._vendor.packaging.versionr	   rf   Ú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   r   Ú	getLoggerr   Úloggerr#   r   r8   rj   rZ   r>   r_   r   r    r!   ú<module>r”      s  ðÛ Û Û 
Û Û Ý #Ý ß 6Ó 6å @å 2Ý =ß DÝ 1Ý :Ý +Ý ;Ý 2Ý 1áÝ ô˜ô ð 
ˆ×	Ñ	˜8Ó	$€ô3�GÐ0ô 3ðl#˜˜d 3¨ 8™nÑ-ð #°$Ð7GÑ2Hó #ð8: sð :°Cð :¸Dó :ð* (,Ø$(ñ#Ø
ÐÑ
 ð#à ‘}ð#ð ˜S‘Mð#ð 
ó	#ðL,˜d 3™ið ,¨Cô ,r    