diff --git a/pyrelacs/config/config_loader.py b/pyrelacs/config/config_loader.py index c6c5f4c..d197e10 100644 --- a/pyrelacs/config/config_loader.py +++ b/pyrelacs/config/config_loader.py @@ -1,3 +1,4 @@ +from typing import TypedDict, Union from dataclasses import dataclass import pathlib @@ -8,6 +9,75 @@ from pyrelacs.util.logging import config_logging log = config_logging() +class ValueUnit(TypedDict): + value: Union[int, float] + unit: str + +@dataclass +class Settings: + Repros: list[str] + Path: str + + +@dataclass +class Metadata: + Identifier: str + Maintainer: str + Creator: str + Location: str + Lab: str + Institute: str + University: str + Address: str + +@dataclass +class Input: + inputsamplerate : ValueUnit + # BufferSize + inputtracecapacity : ValueUnit + inputunipolar : bool + inputtraceid : list[str] + inputtracescale : list[int] + inputtraceunit : list[str] + inputtracedevice : list[str] + inputtracechannel : list[int] + inputtracereference: list[str] + inputtracemaxvalue : list[int] + inputtracecenter : list[bool] + +@dataclass +class Output: + outputtraceid : list[str] + outputtracedevice : list[str] + outputtracechannel : list[int] + outputtracescale : list[int] + outputtraceunit : list[str] + outputtracemaxrate : list[ValueUnit] + outputtracemodality: list[str] + +@dataclass +class Data: + input: Input + output: Output + +@dataclass +class SimData: + input: + inputsamplerate : 20kHz + inputtracecapacity : 600s + output: + outputtraceid : [ Sinus ] + outputtracedevice : [ ao-0 ] + outputtracechannel : [ 0 ] + outputtracescale : [ 1 ] + outputtraceunit : [ V ] + outputtracemaxrate : [ 40kHz ] + outputtracemodality: [ electric ] + +@dataclass +class PyRelacs: + data: Data + simdata: SimData @dataclass class Config: