Ë
    ²Xjú  ã            	       ó²  — 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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 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Ú	TypedDict)Úparse)ÚCommand)ÚSessionCommandMixin)ÚNO_MATCHES_FOUNDÚSUCCESS)ÚCommandError)Úget_default_environment)ÚPyPI)ÚPipXmlrpcTransport)Ú
indent_log)Úwrite_outputc                   ó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   © ó    úc/var/www/html/content_generation/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.run4   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                  $ r,}d|j                  › d|j                  › �}	t        |	«      ‚d }~ww xY w)N)r   r   ÚorzXMLRPC request failed [code: z]
)r&   Úget_default_sessionr   ÚxmlrpcÚclientÚServerProxyr7   ÚFaultÚ	faultCodeÚfaultStringr   Ú
isinstanceÚlist)
r1   r?   r3   Ú	index_urlÚsessionÚ	transportÚpypirA   ÚfaultÚmessages
             r!   r7   zSearchCommand.searchD   s¸   € Ø—M‘Mˆ	à×*Ñ*¨7Ó3ˆä& y°'Ó:ˆ	Ü�}‰}×(Ñ(¨°IÓ>ˆð	(Ø—;‘;¨¸%Ñ@À$ÓGˆDô ˜$¤Ô%Ð%Ð%Øˆøô �}‰}×"Ñ"ò 	(à/°·±Ð/@ÀÀE×DUÑDUÐCVÐWð ô ˜wÓ'Ð'ûð		(ús   ÁA4 Á4B=Â'B8Â8B=)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_versionrM   Úvalues)rA   ÚpackagesÚhitr   r   rY   s         r!   r8   r8   V   s§   € ô +6«-€HÛˆØ�6‰{ˆØ�i‘.ˆØ�i‘.ˆà�x—}‘}“Ñ&àØ"Ø$˜IñˆH�TŠNð �T‰N˜:Ñ&×-Ñ-¨gÔ6ð œ/¨(°4©.¸Ñ*DÓEÓEØ,3�˜‘˜yÒ)ð! ô$ �—‘Ó!Ó"Ð"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   rY   r   Úparse_versionÚpre)r   r`   ÚenvÚdists       r!   Úprint_dist_installation_inforg   r   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|› �}
	 t        |
«       t        ||«       Œ– y c c}w # t        $ r Y Œ¨w xY w)Nr   r   Ú-é   r   Ú é   é
   Ú
Ú é   z (Ú)z - )
ÚmaxÚlenr\   ÚgetÚtextwrapÚwrapÚjoinr   rg   ÚUnicodeEncodeError)rA   rh   r6   r_   r   r   r`   Útarget_widthÚsummary_linesÚname_latestÚlines              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  ¨Ð*ˆØÐ0Ð1Ð2°#°g°YÐ?ˆð	Ü˜ÔÜ(¨¨vÕ6ñ ùòøô0 "ò 	Ùð	ús   �;C.ÃC3Ã3	C?Ã>C?r   c                 ó$   — t        | t        ¬«      S )N)Úkey)rs   rc   )r   s    r!   r\   r\   «   s   € Üˆxœ]Ô+Ð+r    )NN)1Úloggingr<   r9   rv   Úxmlrpc.clientrF   Úcollectionsr   Úoptparser   Útypingr   r   r   r   r	   Úpip._vendor.packaging.versionr
   rc   Ú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   r8   rg   rW   r>   r\   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    