Source code for prsctrl_gui.app_state.setup_info_db

""""Singleton" module for the GUI's :class:`.MeasurementSetupInfo` :class:`database <.SettingsDb>`.
"""

from devctrl.utility.settings_db import SettingsDb
from prsctrl.utility.setup import MeasurementSetupInfo
_db = None

[docs] def get() -> SettingsDb[str, MeasurementSetupInfo]: """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, MeasurementSetupInfo]): """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