3 ]@sddlmZddlZddlZddlZddlmZmZddlm Z ddl m Z ddl m Z ddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZejeZGdddeZ ddZ!dddZ"ddZ#dS))absolute_importN)CommandSUCCESS) OrderedDict)PipXmlrpcTransport)PyPI)get_terminal_size) indent_log) CommandError)NO_MATCHES_FOUND)parse) pkg_resources) xmlrpc_clientcs<eZdZdZdZdZdZfddZddZd d Z Z S) SearchCommandz@Search for PyPI packages whose name or summary contains .searchz %prog [options] zSearch PyPI for packages.cs@tt|j|||jjddddtjdd|jjd|jdS)Nz-iz--indexindexURLz3Base URL of Python Package Index (default %default))destmetavardefaulthelpr) superr__init__cmd_opts add_optionrpypi_urlparserinsert_option_group)selfargskw) __class__2/tmp/pip-build-8jg9gmni/pip/pip/commands/search.pyrszSearchCommand.__init__cCsT|s td|}|j||}t|}d}tjjrr"r"r#r%Bs  r%c CsT|sdS|dkr&tdd|Dd}ddtjD}x|D] }|d}|dpVd}|jdd gd}|dk r||d }|d krtj||}d d|dj|}d|d||f|f} yvtj| ||kr2tj |} t Ht |d} | j | krtjd| j ntjd| j tjd| WdQRXWq>t k rJYq>Xq>WdS)NcSs.g|]&}t|dt|jddgdqS)r/r?-)lenget).0rFr"r"r# csz!print_results..cSsg|] }|jqSr") project_name)rLpr"r"r#rMgsr/r0r?rGrH   z %-*s - %sz%s (%s)zINSTALLED: %s (latest)z INSTALLED: %sz LATEST: %srI)maxr working_setrKtextwrapwrapjoinloggerinfoget_distributionr rBr>UnicodeEncodeError) r-name_column_widthr$installed_packagesrFr/r0r> target_widthlinedistlatestr"r"r#r)^s>        r)cCs t|tdS)N)key)rW parse_version)r?r"r"r#rBsrB)NN)$ __future__rloggingr&rYpip.basecommandrr pip.compatr pip.downloadr pip.modelsr pip.utilsrpip.utils.loggingr pip.exceptionsr pip.status_codesr Zpip._vendor.packaging.versionr rg pip._vendorr Zpip._vendor.six.movesr getLoggerr8r\rr%r)rBr"r"r"r#s&            + &