ž 7’Režc@sœddlmZddlmZmZddlmZddlmZddl m Z ddl m Z m Z ddlmZmZGdd „d eƒZd S( i(uCommand(uDistributionNotFounduBestVersionAlreadyInstalled(u PackageFinder(ulogger(uInstallRequirement(uget_installed_distributionsudist_is_editable(umake_option_groupu index_groupcs§|EeZdZdZdZdZdZdgZ‡fdd†Zdd „Z d d „Z d d „Z dd„Z dd„Z dd„Zdd„Zdd„Z‡S(u ListCommandu-List installed packages, including editables.ulistu %prog [options]uList installed packages.upythonc stt|ƒj||Ž|j}|jddddddddƒ|jdd dddddd ƒ|jd d dddddd ƒ|jddddddddƒ|jdddddddƒtt|jƒ}|jj d|ƒ|jj d|ƒdS(Nu-ou --outdateduactionu store_trueudefaultuhelpu,List outdated packages (excluding editables)u-uu --uptodateu,List uptodate packages (excluding editables)u-eu --editableuList editable projects.u-lu--localuSIf in a virtualenv that has global access, do not list globally-installed packages.u--preuYInclude pre-release and development versions. By default, pip only finds stable versions.iF( usuperu ListCommandu__init__ucmd_optsu add_optionuFalseumake_option_groupu index_groupuparseruinsert_option_group(uselfuargsukwucmd_optsu index_opts(u __class__(u*/tmp/pip-zej_zi-build/pip/commands/list.pyu__init__s<     uListCommand.__init__cCsItd|jd|d|jd|jd|jd|jd|jd|ƒS( uK Create a package finder appropriate to this list command. u find_linksu index_urlsuallow_externaluallow_unverifieduallow_all_externaluallow_all_prereleasesuprocess_dependency_linksusession(u PackageFinderu find_linksuallow_externaluallow_unverifieduallow_all_externalupreuprocess_dependency_links(uselfuoptionsu index_urlsusession((u*/tmp/pip-zej_zi-build/pip/commands/list.pyu_build_package_finder9s     u!ListCommand._build_package_findercCs\|jr|j|ƒn?|jr2|j|ƒn&|jrK|j|ƒn |j|ƒdS(N(uoutdatedu run_outdateduuptodateu run_uptodateueditableu run_editablesu run_listing(uselfuoptionsuargs((u*/tmp/pip-zej_zi-build/pip/commands/list.pyurunHs   uListCommand.runcCsYxR|j|ƒD]A\}}}||jkrtjd|j|j|fƒqqWdS(Nu%s (Current: %s Latest: %s)(ufind_packages_latests_versionsuparsed_versionuloggerunotifyu project_nameuversion(uselfuoptionsudisturemote_version_rawuremote_version_parsed((u*/tmp/pip-zej_zi-build/pip/commands/list.pyu run_outdatedRsuListCommand.run_outdatedc csι|jg|j}|jr?tjddj|ƒƒg}n|jr[tjddƒn|jr„tjddƒ||j7}ng}xKt d|j d|j ƒD].}|j dƒr¦|j |jdƒƒq¦q¦W|j|ƒ}|j|||ƒ}|j|ƒt d|j d d d|j ƒ}xΈ|D]°}tj|jdƒ}y(|j|d ƒ} | dkrsw1nWn/tk r‹w1YnHtk r₯|j} Yn.X|j| |jƒd } | d } | d } || | fVq1WdS(NuIgnoring indexes: %su,u1.7uˆ--use-mirrors has been deprecated and will be removed in the future. Explicit uses of --index-url and/or --extra-index-url is suggested.u…--mirrors has been deprecated and will be removed in the future. Explicit uses of --index-url and/or --extra-index-url is suggested.u local_onlyuskipudependency_links.txtuinclude_editablesiiFT(u index_urluextra_index_urlsuno_indexuloggerunotifyujoinu use_mirrorsu deprecatedumirrorsuget_installed_distributionsulocaluskipu has_metadatauextenduget_metadata_linesu_build_sessionu_build_package_finderuadd_dependency_linksuFalseuInstallRequirementu from_lineukeyuNoneufind_requirementuTrueuDistributionNotFounduBestVersionAlreadyInstalleduinstalled_versionu_link_package_versionsuname( uselfuoptionsu index_urlsudependency_linksudistusessionufinderuinstalled_packagesurequlinkuremote_versionuremote_version_rawuremote_version_parsed((u*/tmp/pip-zej_zi-build/pip/commands/list.pyufind_packages_latests_versionsXsD       " !       u*ListCommand.find_packages_latests_versionscCs,td|jd|jƒ}|j|ƒdS(Nu local_onlyuskip(uget_installed_distributionsulocaluskipuoutput_package_listing(uselfuoptionsuinstalled_packages((u*/tmp/pip-zej_zi-build/pip/commands/list.pyu run_listingŒsuListCommand.run_listingcCs)td|jddƒ}|j|ƒdS(Nu local_onlyueditables_onlyT(uget_installed_distributionsulocaluTrueuoutput_package_listing(uselfuoptionsuinstalled_packages((u*/tmp/pip-zej_zi-build/pip/commands/list.pyu run_editablessuListCommand.run_editablescCs{t|ddd„ƒ}x\|D]T}t|ƒrPd|j|j|jf}nd|j|jf}tj|ƒqWdS(NukeycSs |jjƒS(N(u project_nameulower(udist((u*/tmp/pip-zej_zi-build/pip/commands/list.pyu•su4ListCommand.output_package_listing..u %s (%s, %s)u%s (%s)(usortedudist_is_editableu project_nameuversionulocationuloggerunotify(uselfuinstalled_packagesudistuline((u*/tmp/pip-zej_zi-build/pip/commands/list.pyuoutput_package_listing”s   u"ListCommand.output_package_listingcCsYg}x?|j|ƒD].\}}}|j|kr|j|ƒqqW|j|ƒdS(N(ufind_packages_latests_versionsuparsed_versionuappenduoutput_package_listing(uselfuoptionsuuptodateudisturemote_version_rawuremote_version_parsed((u*/tmp/pip-zej_zi-build/pip/commands/list.pyu run_uptodates uListCommand.run_uptodate(u__name__u __module__u __qualname__u__doc__unameuusageusummaryuskipu__init__u_build_package_finderurunu run_outdatedufind_packages_latests_versionsu run_listingu run_editablesuoutput_package_listingu run_uptodate(u __locals__((u __class__u*/tmp/pip-zej_zi-build/pip/commands/list.pyu ListCommand s %   4   u ListCommandN(upip.basecommanduCommandupip.exceptionsuDistributionNotFounduBestVersionAlreadyInstalledu pip.indexu PackageFinderupip.loguloggerupip.requInstallRequirementupip.utiluget_installed_distributionsudist_is_editableupip.cmdoptionsumake_option_groupu index_groupu ListCommand(((u*/tmp/pip-zej_zi-build/pip/commands/list.pyus