from .base import Shutter TYPENAME_DUMMY = "Dummy" TYPENAME_DAQ = "DAQ" try: from .impl.sr830 import SR830 except ImportError: pass from .impl.dummy import DummyShutter def list_devices() -> dict[str,list[str]]: devices = { TYPENAME_DUMMY: ["Dummy Shutter"], } try: from .impl.daq import ShutterDAQ devices[TYPENAME_DAQ] = ShutterDAQ.enumerate_devices() except ImportError: pass return devices def connect_device(type_name: str, device_name: str) -> Shutter: if type_name == TYPENAME_DUMMY: return DummyShutter() elif type_name == TYPENAME_DAQ: try: from .impl.daq import ShutterDAQ return ShutterDAQ.connect_device(device_name) except ImportError as e: raise ValueError(f"ShutterDAQ not available: {e}") raise ValueError(f"Unknown device type {type_name}")