Source code for prsctrl_gui.app_state.power_calibration_db
""""Singleton" module for the GUI's :class:`.PowerCaibration` :class:`database <.SettingsDb>`.
"""
from devctrl.utility.settings_db import SettingsDb
from prsctrl.measurement.pump_power_calibration import PowerCalibration
_db = None
[docs]
def get() -> SettingsDb[str, PowerCalibration]:
"""Get the initialized instance.
:raises RuntimeError: If database is not initialized.
:return: Instance that was set using :func:`init`.
"""
if not isinstance(_db, SettingsDb):
raise RuntimeError(f"Database not initialized. Call init() first. (_db = '{_db}')")
return _db
[docs]
def init(db: SettingsDb[str, PowerCalibration]):
"""Initialized the instance.
:raises RuntimeError: If the instance is already initialized.
"""
global _db
if isinstance(_db, SettingsDb):
raise RuntimeError(f"{_db.__class__.__name__}[{_db._settings_class.__name__}] is already initialized.")
_db = db