§
    ¼ô 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 j(        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 „Z2dS )"é    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                   ó:   — e Zd ZU eed<   eed<   ee         ed<   dS )ÚTransformedHitÚnameÚsummaryÚversionsN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   © ó    ú\/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pip/_internal/commands/search.pyr   r      s4   € € € € € € Ø
€I€I�IØ€L€L�LØ�3ŒiÐÐÑÐÐr    r   c            	       ó~   — 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dS )ÚSearchCommandz@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>TÚreturnNc                 óš   — | j                              ddddt          j        d¬¦  «         | j                             d| j         ¦  «         d S )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(   sW   € ØŒ× Ò ØØØØÝ”MØFð 	!ñ 	
ô 	
ð 	
ð 	Œ×'Ò'¨¨4¬=Ñ9Ô9Ð9Ð9Ð9r    ÚoptionsÚargsc                 ó&  — |st          d¦  «        ‚|}|                      ||¦  «        }t          |¦  «        }d }t          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   s“   € Øð 	LÝÐJÑKÔKÐKØˆØ—K’K  wÑ/Ô/ˆ	Ý˜iÑ(Ô(ˆàˆÝŒ:×ÒÑÔð 	;Ý#Ô5Ñ7Ô7¸Ô:ˆNå�d¨>Ð:Ñ:Ô:Ð:Øð 	ÝˆNÝÐr    r?   c                 ó|  — |j         }|                      |¦  «        }t          ||¦  «        }t          j                             ||¦  «        }	 |                     ||dœd¦  «        }n=# t          j        j        $ r&}d|j        › d|j	        › �}	t          |	¦  «        ‚d }~ww xY wt          |t          ¦  «        sJ ‚|S )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ˆ	à×*Ò*¨7Ñ3Ô3ˆå& y°'Ñ:Ô:ˆ	ÝŒ}×(Ò(¨°IÑ>Ô>ˆð	(Ø—;’;¨¸%Ð@Ð@À$ÑGÔGˆDˆDøÝŒ}Ô"ð 	(ð 	(ð 	(àW°´ÐWÐWÀEÔDUÐWÐWð õ ˜wÑ'Ô'Ð'øøøøð		(øøøõ
 ˜$¥Ñ%Ô%Ð%Ð%Ð%Øˆs   ÁA( Á(B"Á<!BÂB")r$   N)r   r   r   Ú__doc__ÚusageÚignore_require_venvr2   r   r   r   ÚintrB   r   r7   r   r    r!   r#   r#   !   s¢   € € € € € ØJÐJð!€EàÐð
:ð 
:ð 
:ð 
:ð ˜6ð  ¨¨c¬ð  °sð  ð  ð  ð  ð ˜D œIð °ð ¸4ÀÀSÈ#ÀXÄÔ;Oð ð ð ð ð ð r    r#   rA   r$   c                 ór  — t          ¦   «         }| D ]†}|d         }|d         }|d         }||                     ¦   «         vr|||gdœ||<   Œ;||         d                              |¦  «         |t          ||         d         ¦  «        k    r|||         d<   Œ‡t	          |                     ¦   «         ¦  «        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ð 4ˆØ�6Œ{ˆØ�i”.ˆØ�i”.ˆà�x—}’}‘”Ð&Ð&àØ"Ø$˜Iðð ˆH�T‰NˆNð �TŒN˜:Ô&×-Ò-¨gÑ6Ô6Ð6ð �/¨(°4¬.¸Ô*DÑEÔEÒEÐEØ,3�˜”˜yÑ)øå�—’Ñ!Ô!Ñ"Ô"Ð"r    ÚlatestÚdistc                 ó2  — |�”t          ¦   «         5  |j        | k    rt          d|j        ¦  «         nJt          d|j        ¦  «         t          | ¦  «        j        rt          d| ¦  «         nt          d| ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )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ÐDÐDå˜_¨d¬lÑ;Ô;Ð;Ý  Ñ(Ô(Ô,ð :Ý ð5àñô ð ð õ ! °&Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð Ðs   ‘A,B
Â
BÂBr   c                 óH   — t          ¦   «         }|                     | ¦  «        S )N)r   Úget_distribution)r   Úenvs     r!   Úget_installed_distributionri   ƒ   s!   € Ý
!Ñ
#Ô
#€CØ×Ò Ñ%Ô%Ð%r    Úname_column_widthr6   c                 óæ  — | sd S |€t          d„ | D ¦   «         ¦  «        dz   }| D ]Ë}|d         }|d         pd}t          |                     ddg¦  «        ¦  «        }|�A||z
  dz
  }|d	k    r3t          j        ||¦  «        }d
d|dz   z  z                        |¦  «        }|› d|› d�}	|	|› ›d|› �}
	 t          |
¦  «         t          |¦  «        }t          ||¦  «         Œ¼# t          $ r Y ŒÈw xY wd S )Nc                 óœ   — g | ]I}t          |d          ¦  «        t          t          |                     ddg¦  «        ¦  «        ¦  «        z   ‘ŒJS )r   r   ú-)Úlenr\   Úget)Ú.0r_   s     r!   ú
<listcomp>z!print_results.<locals>.<listcomp>’   sZ   € ð ð ð àõ ˜˜FœÑ$Ô$¥s­?¸3¿7º7À:ÐPSÈuÑ;UÔ;UÑ+VÔ+VÑ'WÔ'WÑWðð ð r    é   r   r   Ú r   rm   é   é
   ú
ú é   z (ú)z - )
Úmaxr\   ro   ÚtextwrapÚwrapÚjoinr   ri   re   ÚUnicodeEncodeError)rA   rj   r6   r_   r   r   r`   Útarget_widthÚsummary_linesÚname_latestÚlinera   s               r!   r>   r>   ˆ   su  € ð
 ð ØˆØÐ åðð à#ðñ ô ñô ð ñð 	ð ð ð ˆØ�6Œ{ˆØ�i”.Ð& BˆÝ  §¢¨°c°UÑ!;Ô!;Ñ<Ô<ˆØÐ%Ø)Ð,=Ñ=ÀÑAˆLØ˜bÒ Ð å (¤¨g°|Ñ DÔ D�Ø #Ð):¸QÑ)>Ñ"?Ñ?×EÒEÀmÑTÔT�àÐ*Ð* Ð*Ð*Ð*ˆØÐ0Ð?Ð?Ð?°gÐ?Ð?ˆð	Ý˜ÑÔÐÝ-¨dÑ3Ô3ˆDÝ(¨°Ñ6Ô6Ð6Ð6øÝ!ð 	ð 	ð 	ØˆDð	øøøð#ð s   Â2.C!Ã!
C.Ã-C.r   c                 ó.   — t          | t          ¬¦  «        S )N)Úkey)rz   rc   )r   s    r!   r\   r\   ¯   s   € Ýˆx�]Ð+Ñ+Ô+Ð+r    )NN)3Úloggingr<   r9   r{   Ú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Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à @Ð @Ð @Ð @Ð @Ð @à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø =Ð =Ð =Ð =Ð =Ð =Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø :Ð :Ð :Ð :Ð :Ð :Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø +Ð +Ð +Ð +Ð +Ð +Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð �Yñ ô ð ð 
ˆÔ	˜8Ñ	$Ô	$€ð2ð 2ð 2ð 2ð 2�GÐ0ñ 2ô 2ð 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    