Skip to content

Commit b0b1502

Browse files
committed
minor get_package_versions/get_package_version tweak
enabling better reuse
1 parent 5b6e9fc commit b0b1502

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

openeo_driver/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.136.0a2"
1+
__version__ = "0.136.0a3"

openeo_driver/utils.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -337,15 +337,19 @@ def extract_namedtuple_fields_from_dict(
337337
return result
338338

339339

340+
def get_package_version(package: str) -> Union[str, None]:
341+
"""
342+
Get (installed) version of provided package or None (when not installed).
343+
"""
344+
try:
345+
return importlib.metadata.version(distribution_name=package)
346+
except importlib.metadata.PackageNotFoundError:
347+
return None
348+
349+
340350
def get_package_versions(packages: List[str], na_value="n/a") -> dict:
341-
"""Get (installed) version number of each Python package (where possible)."""
342-
version_info = {}
343-
for package in packages:
344-
try:
345-
version_info[package] = importlib.metadata.version(distribution_name=package)
346-
except importlib.metadata.PackageNotFoundError:
347-
version_info[package] = na_value
348-
return version_info
351+
"""Get (installed) version of each Python package (where possible)."""
352+
return {p: get_package_version(p) or na_value for p in packages}
349353

350354

351355
def generate_unique_id(prefix: Optional[str] = None, *, date_prefix: Union[bool, str] = True) -> str:

tests/test_utils.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
generate_unique_id,
1919
WhiteListEvalEnv,
2020
filter_supported_kwargs,
21+
get_package_version,
2122
)
2223

2324

@@ -260,6 +261,11 @@ class Foo(typing.NamedTuple):
260261
) == {"id": "bar", "size": 3}
261262

262263

264+
def test_get_package_version_basic():
265+
assert get_package_version("flask") == RegexMatcher(r"\d+\.\d+\.\d+")
266+
assert get_package_version("foobarmeh") is None
267+
268+
263269
def test_get_package_versions_basic():
264270
versions = get_package_versions(["flask", "requests"])
265271
assert versions == {

0 commit comments

Comments
 (0)