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

1import pprint 

2from importlib import metadata 

3from importlib.metadata import version 

4 

5from .. import version_storage 

6 

7 

8def get_python_library() -> str: 

9 library_list = [] 

10 

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() 

17 

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) 

25 

26 version_storage.__python_library__ = library_str 

27 

28 return library_str 

29 

30 

31# import pkg_resources # BUXTON: this is deprecated! 

32 

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) 

43 

44# version_storage.__python_library__ = library_str 

45 

46# return library_str