"""Static configuration loader for Oizom environmental monitoring devices.
Reads base device configuration from ``Configuration/config.json`` at startup.
This JSON file contains default settings inherited by all sensor wrappers,
including sampling intervals, data formats, and device metadata.
The :class:`Config` singleton is instantiated once by :class:`SensorBase.GenericSensor`
and its ``config`` attribute is shared across all wrapper instances.
Typical usage::
from Configuration import Config
cfg = Config()
print(cfg.config["sampling_interval"])
"""
import json
import os
[docs]
class Config:
"""Loader for the base device configuration file.
Reads and parses ``Configuration/config.json`` on instantiation, making
the resulting dictionary available via the :attr:`config` attribute.
Attributes:
config: Parsed contents of ``config.json``. Contains base settings
such as sampling intervals, device identifiers, and default
parameter configurations shared by all sensor wrappers.
"""
config: dict = {}
[docs]
def __init__(self) -> None:
dirname = os.path.dirname(__file__)
file_name = os.path.join(dirname, "config.json")
with open(file_name) as f:
data = json.load(f)
self.config = data