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