from .base import MeasurementDevice TYPENAME_TEST = "Test" TYPENAME_SR830 = "SR830" TYPENAME_MODEL7260 = "Model7260" try: from .impl.sr830 import SR830 except ImportError: pass from .impl.test import TestVoltageMeasurementDevice def list_devices() -> dict[str,list[str]]: devices = { TYPENAME_TEST: ["Measurement Dummy Device"], } try: from .impl.sr830 import SR830 devices[TYPENAME_SR830] = SR830.enumerate_devices() except ImportError: pass try: from .impl.model7260 import Model7260 devices[TYPENAME_MODEL7260] = Model7260.enumerate_devices() except ImportError: pass return devices def connect_device(type_name: str, device_name: str) -> MeasurementDevice: if type_name == TYPENAME_TEST: return TestVoltageMeasurementDevice() 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}")