ó
    �R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  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'\ RP                  " \)5      r* " S S\\5      r+S\\\,\,4      S\S   4S jr-S\,S\\   SS4S jr.S\,S\\   4S jr/  S!S\S   S\\0   S\\0   SS4S jjr1S\\,   S\,4S  jr2g)"é    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                   ó:   • \ 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   ó    ÚID:\diplom_project\venv\Lib\site-packages\pip/_internal/commands/search.pyr   r      s   ‡ Ø
ƒIØƒLØ�3‰iÖ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�   € ô +6«-€HÛˆØ�6‰{ˆØ�i‘.ˆØ�i‘.ˆà—}‘}“Ó&àØ"Ø$˜IñˆH‹Nð ‰N˜:Ñ&×-Ñ-¨gÔ6ð œ/¨(©.¸Ñ*DÓEÕEØ,3˜‘˜yÓ)ñ! ô$ �—‘Ó!Ó"Ð"r#   ÚlatestÚdistc                 ó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   r`   r   Úparse_versionÚpre)rg   rh   s     r$   Úprint_dist_installation_inforl   r   sr   € ØÑÜ�\Ø�|‰|˜vÓ%ÜÐ5°t·|±|ÕDä˜_¨d¯l©lÔ;Ü  Ó(×,×,Ü ð5àõô ! °&Ô9÷ ˆ\ð ß�\ús   ŽA1B	Â	
Br   c                 ó8   • [        5       nUR                  U 5      $ )N)r   Úget_distribution)r   Úenvs     r$   Úget_installed_distributionrp   ƒ   s   € Ü
!Ó
#€CØ×Ñ Ó%Ð%r#   Úname_column_widthr;   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Úlenrc   ÚgetÚtextwrapÚwrapÚjoinr   rp   rl   ÚUnicodeEncodeError)rF   rq   r;   rf   r   r   rg   Útarget_widthÚsummary_linesÚname_latestÚlinerh   s               r$   rC   rC   ˆ   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r   c                 ó   • [        U [        S9$ )N)Úkey)r|   rj   )r   s    r$   rc   rc   ¯   s   € Üˆxœ]Ñ+Ð+r#   )NN)3ÚloggingrA   r>   r   Úxmlrpc.clientrL   Úcollectionsr   Úoptparser   Útypingr   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.metadata.baser   Úpip._internal.models.indexr   Úpip._internal.network.xmlrpcr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Ú	getLoggerr   Úloggerr&   r    r=   rl   rp   r^   rC   rc   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#   