Coverage for src/km3dq_common/__init__.py: 41%

29 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-09-25 11:58 +0000

1import atexit 

2import sys 

3 

4 

5try: 

6 from importlib.metadata import version as get_version 

7 version = get_version(__name__) 

8except ImportError: 

9 from pkg_resources import get_distribution 

10 version = get_distribution(__name__).version 

11 

12from .calc import Calculator 

13 

14 

15if sys.version_info < (3, 9): 

16 import importlib_resources 

17 

18 try: 

19 from importlib_resources import as_file 

20 except ImportError: 

21 from importlib_resources.trees import as_file 

22else: 

23 import importlib.resources as importlib_resources 

24 from importlib.resources import as_file 

25 

26try: 

27 from contextlib import ExitStack 

28except ImportError: 

29 from contextlib2 import ExitStack 

30 

31 

32def config_path(filename, raise_missing=True): 

33 """Return the absolute filepath for a given filename in Config""" 

34 ref = importlib_resources.files("km3dq_common") / f"Config/{filename}.toml" 

35 file_manager = ExitStack() 

36 atexit.register(file_manager.close) 

37 file_path = file_manager.enter_context(as_file(ref)) 

38 if raise_missing and not file_path.exists(): 

39 raise RuntimeError("Unknown or missing file: {0}".format(filename)) 

40 return str(file_path)