3 (\x@sddlmZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddlmZddlmZmZdd lmZdd lmZdd lmZdd lmZdd lmZejeZGdddeZ ddZ!dddZ"ddZ#dS))absolute_importN) OrderedDict) pkg_resources)parse) xmlrpc_client)Command)NO_MATCHES_FOUNDSUCCESS)PipXmlrpcTransport) CommandError)PyPI)get_terminal_size) indent_logcs@eZdZdZdZdZdZdZfddZdd Z d d Z Z S) SearchCommandz@Search for PyPI packages whose name or summary contains .searchz %prog [options] zSearch PyPI for packages.Tcs@tt|j|||jjddddtjdd|jjd|jdS)Nz-iz--indexindexURLz3Base URL of Python Package Index (default %default))destmetavardefaulthelpr) superr__init__cmd_opts add_optionr pypi_urlparserinsert_option_group)selfargskw) __class__p/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-build-k1a8l1r5/pip/pip/_internal/commands/search.pyr!szSearchCommand.__init__cCsT|s td|}|j||}t|}d}tjjrr"r"r#r%Es  r%c CsH|sdS|dkr&tdd|Dd}ddtjD}x |D]}|d}|dpVd}t|jdd g}|dk r||d }|d krtj||}d d |dj|}d|d||f|f} yjtj | ||kr&tj |} t <| j |krtj d| j ntj d| j tj d|WdQRXWq>t k r>Yq>Xq>WdS)NcSs.g|]&}t|dtt|jddgqS)r/r?-)lenrBget).0rFr"r"r# fsz!print_results..cSsg|] }|jqSr") project_name)rJpr"r"r#rKjsr/r0r?rG   z %-*s - %sz%s (%s)zINSTALLED: %s (latest)z INSTALLED: %sz LATEST: %s)maxr working_setrBrItextwrapwrapjoinloggerinfoget_distributionrr>UnicodeEncodeError) r-name_column_widthr$installed_packagesrFr/r0latest target_widthlinedistr"r"r#r)as<       r)cCs t|tdS)N)key)rU parse_version)r?r"r"r#rBsrB)NN)$ __future__rloggingr&rW collectionsr pip._vendorrZpip._vendor.packaging.versionrrepip._vendor.six.movesrZpip._internal.cli.base_commandrZpip._internal.cli.status_codesrr Zpip._internal.downloadr Zpip._internal.exceptionsr Zpip._internal.models.indexr Zpip._internal.utils.compatr Zpip._internal.utils.loggingr getLoggerr8rZrr%r)rBr"r"r"r#s&            , %