14
14
from pip ._internal .cli .status_codes import NO_MATCHES_FOUND , SUCCESS
15
15
from pip ._internal .exceptions import CommandError
16
16
from pip ._internal .metadata import get_default_environment
17
+ from pip ._internal .metadata .base import BaseDistribution
17
18
from pip ._internal .models .index import PyPI
18
19
from pip ._internal .network .xmlrpc import PipXmlrpcTransport
19
20
from pip ._internal .utils .logging import indent_log
@@ -111,9 +112,9 @@ def transform_hits(hits: List[Dict[str, str]]) -> List["TransformedHit"]:
111
112
return list (packages .values ())
112
113
113
114
114
- def print_dist_installation_info ( name : str , latest : str ) -> None :
115
- env = get_default_environment ()
116
- dist = env . get_distribution ( name )
115
+ def print_dist_installation_info_if_exists (
116
+ latest : str , dist : Optional [ BaseDistribution ]
117
+ ) -> None :
117
118
if dist is not None :
118
119
with indent_log ():
119
120
if dist .version == latest :
@@ -130,6 +131,11 @@ def print_dist_installation_info(name: str, latest: str) -> None:
130
131
write_output ("LATEST: %s" , latest )
131
132
132
133
134
+ def get_installed_distribution (name : str ) -> Optional [BaseDistribution ]:
135
+ env = get_default_environment ()
136
+ return env .get_distribution (name )
137
+
138
+
133
139
def print_results (
134
140
hits : List ["TransformedHit" ],
135
141
name_column_width : Optional [int ] = None ,
@@ -163,7 +169,8 @@ def print_results(
163
169
line = f"{ name_latest :{name_column_width }} - { summary } "
164
170
try :
165
171
write_output (line )
166
- print_dist_installation_info (name , latest )
172
+ dist = get_installed_distribution (name )
173
+ print_dist_installation_info_if_exists (latest , dist )
167
174
except UnicodeEncodeError :
168
175
pass
169
176
0 commit comments