from .base import Monochromator TYPENAME_DUMMY = "Dummy" TYPENAME_BENTHAM = "Bentham" try: from .impl.sr830 import SR830 except ImportError: pass from .impl.dummy import DummyMonochromator def list_devices() -> dict[str,list[str]]: devices = { TYPENAME_DUMMY: ["Dummy Monochromator"], } try: from .impl.bentham_tmc300 import TMC300 devices[TYPENAME_BENTHAM] = ["Bentham TMC300"] except ImportError: pass return devices def connect_device(type_name: str, device_name: str) -> Monochromator: if type_name == TYPENAME_DUMMY: return DummyMonochromator() elif type_name == TYPENAME_BENTHAM: try: from .impl.bentham_tmc300 import TMC300 return TMC300() except ImportError as e: raise ValueError(f"TMC300 not available: {e}") raise ValueError(f"Unknown device type {type_name}")