a
    ”¼de‘  ã                   @   sV  d dl m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 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 m!Z! d dl"m#Z# e#�rd dl$m%Z% d dl&m'Z'm(Z(m)Z) d dl*m+Z+ e+de,e,e(e, dœƒZ-e .e/¡Z0G dd„ deeƒZ1dd„ Z2ddd„Z3dd„ Z4dS )é    )Úabsolute_importN)ÚOrderedDict)Úpkg_resources)Úparse)Úxmlrpc_client)ÚCommand)ÚSessionCommandMixin)ÚNO_MATCHES_FOUNDÚSUCCESS)ÚCommandError)ÚPyPI)ÚPipXmlrpcTransport)Úget_terminal_size)Ú
indent_log)Úget_distributionÚwrite_output)ÚMYPY_CHECK_RUNNING)ÚValues)ÚDictÚListÚOptional)Ú	TypedDictÚTransformedHit©ÚnameÚsummaryÚversionsc                   @   s0   e Zd ZdZdZdZdd„ Zdd„ Zdd	„ Zd
S )ÚSearchCommandz@Search for PyPI packages whose name or summary contains <query>.z
      %prog [options] <query>Tc                 C   s.   | j jddddtjd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)Úself© r*   úV/var/www/sistema_ama/venv/lib/python3.9/site-packages/pip/_internal/commands/search.pyÚadd_options.   s    ûzSearchCommand.add_optionsc                 C   sT   |st dƒ‚|}|  ||¡}t|ƒ}d }tj ¡ r<tƒ d }t||d� |rPtS t	S )Nz)Missing required argument (search query).r   )Úterminal_width)
r   ÚsearchÚtransform_hitsÚsysÚstdoutÚisattyr   Úprint_resultsr
   r	   )r)   ÚoptionsÚargsÚqueryZ	pypi_hitsÚhitsr-   r*   r*   r+   Úrun9   s    

zSearchCommand.runc           
   
   C   s‚   |j }|  |¡}t||ƒ}t ||¡}z| ||dœd¡}W n@ tjy| } z&dj|j|j	d�}	t
|	ƒ‚W Y d }~n
d }~0 0 |S )N)r   r   Úorz-XMLRPC request failed [code: {code}]
{string})ÚcodeÚstring)r   Úget_default_sessionr   r   ÚServerProxyr.   ÚFaultÚformatÚ	faultCodeÚfaultStringr   )
r)   r6   r4   Ú	index_urlÚsessionÚ	transportÚpypir7   ÚfaultÚmessager*   r*   r+   r.   J   s    

þzSearchCommand.searchN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚusageÚignore_require_venvr,   r8   r.   r*   r*   r*   r+   r   '   s   r   c                 C   s†   t ƒ }| D ]n}|d }|d }|d }|| ¡ vrF|||gdœ||< q
|| d  |¡ |t|| d ƒkr
||| d< q
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   Úversionr   r   )r   ÚkeysÚappendÚhighest_versionÚlistÚvalues)r7   ÚpackagesÚhitr   r   rN   r*   r*   r+   r/   ]   s    ýr/   c              	   C   s~  | sd S |d u r&t dd„ | D ƒƒd }dd„ tjD ƒ}| D �]<}|d }|d pRd}t| dd	g¡ƒ}|d ur¤|| d
 }|dkr¤t ||¡}	dd|d    |	¡}djf ddjf i t	ƒ ¤Žit	ƒ ¤Ž}
zšt
|
ƒ ||v �r`t|ƒ}|d usðJ ‚tƒ �X |j|k�rt
d|jƒ n.t
d|jƒ t|ƒj�r6t
d|ƒ n
t
d|ƒ W d   ƒ n1 �sV0    Y  W q: t�yv   Y q:0 q:d S )Nc              	   S   s.   g | ]&}t |d  ƒt t| ddg¡ƒƒ ‘qS )r   r   ú-)ÚlenrQ   Úget)Ú.0rU   r*   r*   r+   Ú
<listcomp>   s   ÿz!print_results.<locals>.<listcomp>é   c                 S   s   g | ]
}|j ‘qS r*   )Úproject_name)rY   Úpr*   r*   r+   rZ   „   ó    r   r   Ú r   rV   é   é
   Ú
ú é   z-{name_latest:{name_column_width}} - {summary}Zname_latestz{name} ({latest})zINSTALLED: %s (latest)zINSTALLED: %sz=LATEST:    %s (pre-release; install with "pip install --pre")zLATEST:    %s)Úmaxr   Úworking_setrQ   rX   ÚtextwrapÚwrapÚjoinr?   Úlocalsr   r   r   rN   Úparse_versionÚpreÚUnicodeEncodeError)r7   Zname_column_widthr-   Zinstalled_packagesrU   r   r   ZlatestZtarget_widthZsummary_linesÚlineÚdistr*   r*   r+   r3   z   sR    þý
ÿÿþ
ÿ.r3   c                 C   s   t | td�S )N)Úkey)re   rk   )r   r*   r*   r+   rQ   §   s    rQ   )NN)5Ú
__future__r   Úloggingr0   rg   Úcollectionsr   Úpip._vendorr   Zpip._vendor.packaging.versionr   rk   Zpip._vendor.six.movesr   Úpip._internal.cli.base_commandr   Úpip._internal.cli.req_commandr   Úpip._internal.cli.status_codesr	   r
   Úpip._internal.exceptionsr   Úpip._internal.models.indexr   Zpip._internal.network.xmlrpcr   Úpip._internal.utils.compatr   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Úpip._internal.utils.typingr   Úoptparser   Útypingr   r   r   Ztyping_extensionsr   Ústrr   Ú	getLoggerrH   Úloggerr   r/   r3   rQ   r*   r*   r*   r+   Ú<module>   s<   þ
6
-