Ë
    ��h˜  ã            	       óÒ  — 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$ d dl%m&Z&  G d„ de«      Z' e jP                  e)«      Z* G d„ dee«      Z+deee,e,f      ded   fd„Z-de,dee   ddfd„Z.de,dee   fd„Z/	 	 d!ded   dee0   dee0   ddfd„Z1dee,   de,fd „Z2y)"é    N)ÚOrderedDict)ÚValues)ÚDictÚListÚOptionalÚ	TypedDict)Úparse)ÚCommand)ÚSessionCommandMixin)ÚNO_MATCHES_FOUNDÚSUCCESS)ÚCommandError)Úget_default_environment)ÚBaseDistribution)Ú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   © ó    ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_internal/commands/search.pyr   r      s   … Ø
ƒIØƒLØ�3‰iÔ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Øò 4ˆØ�6‰{ˆØ�i‘.ˆØ�i‘.ˆà�x—}‘}“Ñ&àØ"Ø$˜IñˆH�TŠNð �T‰N˜:Ñ&×-Ñ-¨gÔ6ð œ/¨(°4©.¸Ñ*DÓEÓEØ,3�˜‘˜yÒ)ð!4ô$ �—‘Ó!Ó"Ð"r    ÚlatestÚdistc                 ó  — |�~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   rY   r   Úparse_versionÚpre)r`   ra   s     r!   Úprint_dist_installation_infore   r   s   € ØÐÜ‹\ñ 	:Ø�|‰|˜vÒ%ÜÐ5°t·|±|ÕDä˜_¨d¯l©lÔ;Ü  Ó(×,Ò,Ü ð5àõô ! °&Ô9÷	:ð 	:ð ÷	:ð 	:ús   �A+BÂBr   c                 ó8   — t        «       }|j                  | «      S )N)r   Úget_distribution)r   Úenvs     r!   Úget_installed_distributionri   ƒ   s   € Ü
!Ó
#€CØ×Ñ Ó%Ð%r    Ú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        |«      }t        ||«       Œ£ y c c}w # t        $ r Y Œµw xY w)Nr   r   ú-é   r   Ú é   é
   ú
ú é   z (ú)z - )ÚmaxÚlenr\   ÚgetÚtextwrapÚwrapÚjoinr   ri   re   ÚUnicodeEncodeError)rA   rj   r6   r_   r   r   r`   Útarget_widthÚsummary_linesÚname_latestÚlinera   s               r!   r>   r>   ˆ   sZ  € ñ
 ØØÐ äð  $öàô ˜˜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Ð?ˆð	Ü˜ÔÜ-¨dÓ3ˆDÜ(¨°Õ6ñ!ùòøô2 "ò 	Ùð	ús   �;C;Ã"D Ä 	DÄDr   c                 ó$   — t        | t        ¬«      S )N)Úkey)ru   rc   )r   s    r!   r\   r\   ¯   s   € Üˆxœ]Ô+Ð+r    )NN)3Úloggingr<   r9   rx   Úxmlrpc.clientrF   Úcollectionsr   Úoptparser   Útypingr   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.metadata.baser   Úpip._internal.models.indexr   Úpip._internal.network.xmlrpcr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Ú	getLoggerr   Úloggerr#   r   r8   re   ri   rW   r>   r\   r   r    r!   ú<module>r”      s(  ðÛ Û Û 
Û Û Ý #Ý ß 2Ó 2å @å 2Ý =ß DÝ 1Ý :Ý 8Ý +Ý ;Ý 2Ý 1ô�Yô ð 
ˆ×	Ñ	˜8Ó	$€ô2�GÐ0ô 2ðj#˜˜d 3¨ 8™nÑ-ð #°$Ð7GÑ2Hó #ð8:¨ð :°HÐ=MÑ4Nð :ÐSWó :ð"& Sð &¨XÐ6FÑ-Gó &ð (,Ø$(ñ$Ø
ÐÑ
 ð$à ‘}ð$ð ˜S‘Mð$ð 
ó	$ðN,˜d 3™ið ,¨Cô ,r    