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
« prev ^ index » next coverage.py v7.6.1, created at 2024-09-25 11:58 +0000
1import atexit
2import sys
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
12from .calc import Calculator
15if sys.version_info < (3, 9):
16 import importlib_resources
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
26try:
27 from contextlib import ExitStack
28except ImportError:
29 from contextlib2 import ExitStack
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)