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