From 7cd7ddadd721b77eecae90d26e68cc2d5d431003 Mon Sep 17 00:00:00 2001 From: Peter Holloway Date: Thu, 18 Dec 2025 12:39:23 +0000 Subject: [PATCH] Use find_device from device endpoint Using the find_device method instead of looking devices up in the map of devices directly means child devices can be found, eg 'stage.x' could be a valid device but isn't in the devices map in its own right. --- src/blueapi/service/interface.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/blueapi/service/interface.py b/src/blueapi/service/interface.py index 74a95291c..13c053b95 100644 --- a/src/blueapi/service/interface.py +++ b/src/blueapi/service/interface.py @@ -141,7 +141,10 @@ def get_devices() -> list[DeviceModel]: def get_device(name: str) -> DeviceModel: """Retrieve device by name from the BlueskyContext""" - return DeviceModel.from_device(context().devices[name]) + if not (device := context().find_device(name)): + raise KeyError(name) + + return DeviceModel.from_device(device) def submit_task(task_request: TaskRequest) -> str: