ž 7’Re€c@s ddlZddlZddlZddlmZmZddlmZddl m Z ddl m Z m Z mZddlmZddlmZddlmZdd lmZmZGd d „d eƒZd d „Zdddd„Zdd„Zdd„ZdS(iN(uCommanduSUCCESS(uget_terminal_size(ulogger(u xmlrpclibureduceucmp(u CommandError(uNO_MATCHES_FOUND(u pkg_resources(u StrictVersionu LooseVersioncsV|EeZdZdZdZdZdZ‡fdd†Zdd„Zd d „Z ‡S( u SearchCommandu@Search for PyPI packages whose name or summary contains .usearchu %prog [options] uSearch PyPI for packages.c s[tt|ƒj||Ž|jjddddddddd ƒ|jjd |jƒdS( Nu--indexudestuindexumetavaruURLudefaultuhttps://pypi.python.org/pypiuhelpu3Base URL of Python Package Index (default %default)i(usuperu SearchCommandu__init__ucmd_optsu add_optionuparseruinsert_option_group(uselfuargsukw(u __class__(u,/tmp/pip-zej_zi-build/pip/commands/search.pyu__init__s uSearchCommand.__init__cCs…|stdƒ‚n|}|j}|j||ƒ}t|ƒ}d}tjjƒrgtƒd}nt |d|ƒ|rt St S(Nu)Missing required argument (search query).iuterminal_width( u CommandErroruindexusearchutransform_hitsuNoneusysustdoutuisattyuget_terminal_sizeu print_resultsuSUCCESSuNO_MATCHES_FOUND(uselfuoptionsuargsuqueryu index_urlu pypi_hitsuhitsuterminal_width((u,/tmp/pip-zej_zi-build/pip/commands/search.pyurun"s  uSearchCommand.runcCs3tj|ƒ}|ji|d6|d6dƒ}|S(Nunameusummaryuor(u xmlrpclibu ServerProxyusearch(uselfuqueryu index_urlupypiuhits((u,/tmp/pip-zej_zi-build/pip/commands/search.pyusearch4s uSearchCommand.search( u__name__u __module__u __qualname__u__doc__unameuusageusummaryu__init__urunusearch(u __locals__((u __class__u,/tmp/pip-zej_zi-build/pip/commands/search.pyu SearchCommands u SearchCommandcCsi}xΧ|D]Ο}|d}|d}|d}|d}|d krPd}n||jƒkrŽi|d6|d6|gd6|d6||Tsu transform_hits..ureverseNT(uNoneukeysuappenduhighest_versionusorteduvaluesuTrue(uhitsupackagesuhitunameusummaryuversionuscoreu package_list((u,/tmp/pip-zej_zi-build/pip/commands/search.pyutransform_hits:s        ,$utransform_hitsic Csgdd„tjDƒ}xJ|D]B}|d}|dp:d}|dk rtj|||dƒ}dd|d j|ƒ}nd |j|ƒ|f}y°tj|ƒ||krItj |ƒ}tj d 7_ z_t |d ƒ} |j | kr tjd |j ƒn%tjd|j ƒtjd| ƒWdtj d 8_ XnWqt k r^YqXqWdS(NcSsg|]}|j‘qS((u project_name(u.0up((u,/tmp/pip-zej_zi-build/pip/commands/search.pyu Ys u!print_results..unameusummaryuiu u iu%s - %siuversionsuINSTALLED: %s (latest)u INSTALLED: %su LATEST: %s(u pkg_resourcesu working_setuNoneutextwrapuwrapujoinuljustuloggerunotifyuget_distributionuindentuhighest_versionuversionuUnicodeEncodeError( uhitsuname_column_widthuterminal_widthuinstalled_packagesuhitunameusummaryulineudistulatest((u,/tmp/pip-zej_zi-build/pip/commands/search.pyu print_resultsXs,      u print_resultscCs‘ytt|ƒt|ƒƒSWntk r1YnXytt|ƒt|ƒƒSWnKtk rœtdd„t|ƒjDƒdd„t|ƒjDƒƒSYnXdS(NcSsg|]}t|ƒ‘qS((ustr(u.0uv((u,/tmp/pip-zej_zi-build/pip/commands/search.pyu s u$compare_versions..cSsg|]}t|ƒ‘qS((ustr(u.0uv((u,/tmp/pip-zej_zi-build/pip/commands/search.pyu €s (ucmpu StrictVersionu ValueErroru LooseVersionu TypeErroruversion(uversion1uversion2((u,/tmp/pip-zej_zi-build/pip/commands/search.pyucompare_versionsts  ucompare_versionscCstdd„|ƒS(NcSst||ƒdkr|p|S(Ni(ucompare_versions(uv1uv2((u,/tmp/pip-zej_zi-build/pip/commands/search.pyu„su!highest_version..(ureduce(uversions((u,/tmp/pip-zej_zi-build/pip/commands/search.pyuhighest_versionƒsuhighest_version(usysutextwrapu pip.downloadupipupip.basecommanduCommanduSUCCESSupip.utiluget_terminal_sizeupip.loguloggerupip.backwardcompatu xmlrpclibureduceucmpupip.exceptionsu CommandErrorupip.status_codesuNO_MATCHES_FOUNDu pip._vendoru pkg_resourcesudistutils.versionu StrictVersionu LooseVersionu SearchCommandutransform_hitsuNoneu print_resultsucompare_versionsuhighest_version(((u,/tmp/pip-zej_zi-build/pip/commands/search.pyus   *