Sindbad~EG File Manager
3
�Pf��@s�ddlmZddlZddlZddlZddlmZmZddlm Z ddl
mZddlm
Z
ddlmZddlmZdd lmZdd
lmZddlmZddlmZdd
lmZeje�ZGdd�de�Z dd�Z!ddd�Z"dd�Z#dS)�)�absolute_importN)�Command�SUCCESS)�OrderedDict)�PipXmlrpcTransport)�PyPI)�get_terminal_size)�
indent_log)�CommandError)�NO_MATCHES_FOUND)�parse)�
pkg_resources)�
xmlrpc_clientcs<eZdZdZdZdZdZ�fdd�Zdd�Zd d
�Z �Z
S)�
SearchCommandz@Search for PyPI packages whose name or summary contains <query>.�searchz
%prog [options] <query>zSearch PyPI for packages.cs@tt|�j||�|jjddddtjdd�|jjd|j�dS)Nz-iz--index�indexZURLz3Base URL of Python Package Index (default %default))�dest�metavar�default�helpr) �superr�__init__Zcmd_optsZ
add_optionrZpypi_url�parserZinsert_option_group)�self�args�kw)� __class__��/usr/lib/python3.6/search.pyrszSearchCommand.__init__cCsT|std��|}|j||�}t|�}d}tjj�r<t�d}t||d�|rPtSt S)Nz)Missing required argument (search query).r)�terminal_width)
r
r�transform_hits�sys�stdout�isattyr�
print_resultsrr)r�optionsr�queryZ pypi_hits�hitsrrrr�run)s
zSearchCommand.runcCsH|j}|j|��.}t||�}tj||�}|j||d�d�}|SQRXdS)N)�name�summary�or)rZ_build_sessionrrZServerProxyr)rr&r%Z index_urlZsessionZ transportZpypir'rrrr9s
zSearchCommand.search)�__name__�
__module__�__qualname__�__doc__r)Zusager*rr(r�
__classcell__rr)rrrsrcCs�t�}xv|D]n}|d}|d}|d}||j�krH|||gd�||<q||dj|�|t||d�kr|||d<qWt|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*�versionsr2)r�keys�append�highest_version�list�values)r'Zpackages�hitr)r*r1rrrr Bs
r cCsT|sdS|dkr&tdd�|D��d}dd�tjD�}�x|D�]}|d}|dpVd}|jdd g�d}|dk r�||d}|dkr�tj||�}d
d|dj|�}d|d||f|f} yvtj| �||k�r2tj |�}
t
��Ht|d�}|
j|k�rtjd|
j�ntjd|
j�tjd|�WdQRXWq>t
k
�rJYq>Xq>WdS)NcSs.g|]&}t|d�t|jddg�d��qS)r)r2�-����)�len�get)�.0r8rrr�
<listcomp>csz!print_results.<locals>.<listcomp>�cSsg|]
}|j�qSr)Zproject_name)r>�prrrr?gsr)r*�r2r9r:��
�
� �z %-*s - %sz%s (%s)zINSTALLED: %s (latest)z
INSTALLED: %sz
LATEST: %sr;)�maxr
Zworking_setr=�textwrapZwrap�join�logger�infoZget_distributionr r5r1�UnicodeEncodeError)r'Zname_column_widthrZinstalled_packagesr8r)r*r1Ztarget_width�lineZdistZlatestrrrr$^s>
r$cCst|td�S)N)�key)rH�
parse_version)r2rrrr5�sr5)NN)$Z
__future__rZloggingr!rIZpip.basecommandrrZ
pip.compatrZpip.downloadrZ
pip.modelsrZ pip.utilsrZpip.utils.loggingr Zpip.exceptionsr
Zpip.status_codesrZpip._vendor.packaging.versionrrPZpip._vendorr
Zpip._vendor.six.movesrZ getLoggerr,rKrr r$r5rrrr�<module>s&
+
&
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists