Coverage for python/diagnostic_and_simulation_base/utility/get_python_library.py: 100%
14 statements
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-07 13:12 +0000
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-07 13:12 +0000
1import pprint
2from importlib import metadata
3from importlib.metadata import version
5from .. import version_storage
8def get_python_library() -> str:
9 library_list = []
11 # Retrieve all of the "distributions" and store as list
12 distribution_list = [distribution.name for distribution in metadata.distributions()]
13 # Remove any "None"
14 distributions_sorted = sorted(list(set([x for x in distribution_list if x is not None])))
15 # The "set" function will reurn unique values.
16 # distributions_sorted = distribution_list.sort()
18 for distribution in distributions_sorted:
19 this_entry = {
20 "package": distribution,
21 "version": version(distribution),
22 }
23 library_list.append(this_entry)
24 library_str = pprint.pformat(library_list)
26 version_storage.__python_library__ = library_str
28 return library_str
31# import pkg_resources # BUXTON: this is deprecated!
33# def get_python_library():
34# library_list = []
35# for package in pkg_resources.working_set:
36# package_name = package.project_name
37# this_entry = {
38# 'package': package_name,
39# 'version': version(package_name)
40# }
41# library_list.append(this_entry)
42# library_str = pprint.pformat(library_list)
44# version_storage.__python_library__ = library_str
46# return library_str