From ff7e023c3ac8cb7c40216a2b0027bc5f2c8451e8 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Tue, 1 Sep 2026 17:29:40 +0200 Subject: [PATCH] fix(utils): coerce explicit status timeouts through float() --- ophyd_devices/utils/psi_device_base_utils.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ophyd_devices/utils/psi_device_base_utils.py b/ophyd_devices/utils/psi_device_base_utils.py index 146078c..4fbbbbe 100644 --- a/ophyd_devices/utils/psi_device_base_utils.py +++ b/ophyd_devices/utils/psi_device_base_utils.py @@ -252,6 +252,12 @@ def _resolve_timeout(timeout, obj) -> float | None: if timeout is NO_TIMEOUT: return None if timeout is not None: + try: + timeout = float(timeout) + except (TypeError, ValueError) as exc: + raise TypeError( + f"Status timeout must be a number, None or NO_TIMEOUT, got {timeout!r}" + ) from exc if not math.isfinite(timeout) or timeout <= 0: return None return timeout