Source code for prsctrl_gui.app_state.device_manager
""""Singleton" module for the GUI's device manager.
"""
from devctrl.devices.device_manager import DeviceManager, DeviceInfo, Device
_devmg = None
[docs]
def get() -> DeviceManager:
"""Get the initialized instance.
:raises RuntimeError: If DeviceManager is not initialized.
:return: Instance that was set using :func:`init`.
"""
if not isinstance(_devmg, DeviceManager):
raise RuntimeError(f"DeviceManager not initialized. Call init() first. (_devmg = '{_devmg}')")
return _devmg
[docs]
def init(devmg: DeviceManager):
"""Initialized the instance.
:raises RuntimeError: If the instance is already initialized.
"""
global _devmg
if isinstance(_devmg, DeviceManager):
raise RuntimeError(f"DeviceManager is already initialized.")
_devmg = devmg