From 84ef7e59c9864c9c55dab8e4a1584283c3e7798c Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Mon, 13 Nov 2023 14:22:18 +0100 Subject: [PATCH] refactor: monitor_config_validator.py name validation logic --- bec_widgets/validation/monitor_config_validator.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bec_widgets/validation/monitor_config_validator.py b/bec_widgets/validation/monitor_config_validator.py index c7ad0be3..30025541 100644 --- a/bec_widgets/validation/monitor_config_validator.py +++ b/bec_widgets/validation/monitor_config_validator.py @@ -33,16 +33,16 @@ class Signal(BaseModel): ) # Check if device exists in BEC - try: - device = getattr(devices, v) - except: + if v not in devices: raise PydanticCustomError( "no_device_bec", 'Device "{wrong_value}" not found in current BEC session', dict(wrong_value=v), ) - # Check if device have signals #TODO not sure if devices can be defined also without signals + device = devices.get(v) # get the device to check if it has signals + + # Check if device have signals if not hasattr(device, "signals"): raise PydanticCustomError( "no_device_signals", @@ -57,6 +57,7 @@ class Signal(BaseModel): def set_and_validate_entry(cls, v, values): devices = MonitorConfigValidator.devices + # Get device name from values -> device is already validated device_name = values.data.get("name") device = getattr(devices, device_name, None)