Skip to content

Commit c5cec47

Browse files
committed
Display is package installed and version of installed version
1 parent 6e2cf33 commit c5cec47

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

pypisearch/result_item.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from importlib.metadata import PackageNotFoundError
2+
from importlib.metadata import version as pkg_version
3+
14
import pypisearch.re_constants as const
25

36

@@ -33,3 +36,24 @@ def description(self) -> str:
3336

3437
description = const.DESCRIPTION_RE.findall(self.plain_text)
3538
return description[0] if description else ""
39+
40+
@property
41+
def is_installed(self) -> bool:
42+
try:
43+
pkg_version(self.name)
44+
except PackageNotFoundError:
45+
return False
46+
else:
47+
return True
48+
49+
@property
50+
def get_installed_version(self) -> str:
51+
return pkg_version(self.name) if self.is_installed else ""
52+
53+
@property
54+
def installed_description(self) -> str:
55+
return (
56+
f"[installed {self.get_installed_version}] "
57+
if self.is_installed
58+
else ""
59+
)

pypisearch/search.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ def tabulated_result(self) -> str:
4545
return (
4646
tabulate.tabulate(
4747
[
48-
[f"{item.name} ({item.version})", item.description]
48+
[
49+
f"{item.name} ({item.version})",
50+
f"{item.installed_description}{item.description}",
51+
]
4952
for item in self.result
5053
],
5154
tablefmt="plain",

0 commit comments

Comments
 (0)