|
3 | 3 | from typing import Any, Iterable, List, Optional, Union
|
4 | 4 |
|
5 | 5 | from pip._vendor.packaging.version import LegacyVersion, Version
|
| 6 | +from pip._vendor.packaging.version import parse as parse_version |
6 | 7 |
|
7 | 8 | from pip._internal.cli import cmdoptions
|
8 | 9 | from pip._internal.cli.req_command import IndexGroupCommand
|
9 | 10 | from pip._internal.cli.status_codes import ERROR, SUCCESS
|
10 |
| -from pip._internal.commands.search import print_dist_installation_info |
11 | 11 | from pip._internal.exceptions import CommandError, DistributionNotFound, PipError
|
12 | 12 | from pip._internal.index.collector import LinkCollector
|
13 | 13 | from pip._internal.index.package_finder import PackageFinder
|
| 14 | +from pip._internal.metadata import get_default_environment |
14 | 15 | from pip._internal.models.selection_prefs import SelectionPreferences
|
15 | 16 | from pip._internal.models.target_python import TargetPython
|
16 | 17 | from pip._internal.network.session import PipSession
|
| 18 | +from pip._internal.utils.logging import indent_log |
17 | 19 | from pip._internal.utils.misc import write_output
|
18 | 20 |
|
19 | 21 | logger = logging.getLogger(__name__)
|
@@ -136,3 +138,22 @@ def get_available_package_versions(self, options: Values, args: List[Any]) -> No
|
136 | 138 | write_output("{} ({})".format(query, latest))
|
137 | 139 | write_output("Available versions: {}".format(", ".join(formatted_versions)))
|
138 | 140 | print_dist_installation_info(query, latest)
|
| 141 | + |
| 142 | + |
| 143 | +def print_dist_installation_info(name: str, latest: str) -> None: |
| 144 | + env = get_default_environment() |
| 145 | + dist = env.get_distribution(name) |
| 146 | + if dist is not None: |
| 147 | + with indent_log(): |
| 148 | + if dist.version == latest: |
| 149 | + write_output("INSTALLED: %s (latest)", dist.version) |
| 150 | + else: |
| 151 | + write_output("INSTALLED: %s", dist.version) |
| 152 | + if parse_version(latest).pre: |
| 153 | + write_output( |
| 154 | + "LATEST: %s (pre-release; install" |
| 155 | + " with `pip install --pre`)", |
| 156 | + latest, |
| 157 | + ) |
| 158 | + else: |
| 159 | + write_output("LATEST: %s", latest) |
0 commit comments