Source code for exosim.tools.exosimTool
from collections import OrderedDict
from typing import List, Union
import exosim.tasks.load as load
from exosim.log import Logger
[docs]class ExoSimTool(Logger):
"""
*Abstract class*
Base class for exosim tools.
Attributes
----------------
ch_param: dict
dictionary for the channels' configurations
options: dict
configurations dictionary
results: dict
dictionary for the results output
"""
def __init__(self, options_file: Union[str, dict]) -> None:
super().__init__()
if isinstance(options_file, str):
loadOption = load.LoadOptions()
self.options = loadOption(filename=options_file)
elif isinstance(options_file, dict):
self.options = options_file
self.ch_param = {}
if isinstance(self.options["channel"], OrderedDict):
for key, value in self.options["channel"].items():
self.ch_param[key] = value
else:
self.ch_param[self.options["channel"]["value"]] = self.options[
"channel"
]
self.results = {}
@property
[docs] def ch_list(self) -> List[str]:
"""list of channel names"""
if isinstance(self.options["channel"], OrderedDict):
ch_list = list(self.options["channel"])
ch_list.sort()
else:
ch_list = [self.options["channel"]["value"]]
return ch_list