Files
Bench-Data-Processing/bench-data-connector/src/bench_data_connector/config.py
T
Martin Girard 6c0da0a22f Config implementation
Implementation of a JSON file that save all the Signal descriptor
2026-09-24 10:41:14 +02:00

46 lines
1.1 KiB
Python

from pydantic import BaseModel, Field
from dynalab_core.protocols.packets.handshake import JsonSignalDescriptor
from pathlib import Path
from typing import Self
from uuid import uuid4
class Config(BaseModel):
rpmhz_sig: JsonSignalDescriptor | None = None
lambda_sig: JsonSignalDescriptor | None = None
comments: str = ""
def write(self, file: str | Path) -> None:
output_path = Path(file).expanduser()
output_path.parent.mkdir(parents=True, exist_ok=True)
output_path.write_text(
self.model_dump_json(indent=4),
encoding="utf-8",
)
def read_config(file: str | Path) -> Config:
input_path = Path(file).expanduser()
if input_path.exists():
return Config.model_validate_json(input_path.read_text(encoding="utf-8"))
raise FileNotFoundError
DEFAULT_CONFIG = Config(
rpmhz_sig=JsonSignalDescriptor(
id=uuid4(),
name="Rpmhz",
type="number",
timeout_ms=5000,
),
lambda_sig=JsonSignalDescriptor(
id=uuid4(),
name="Lambda",
type="number",
timeout_ms=5000,
),
comments="Mon test",
)