0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 11:41:49 +02:00

fix(device_input_base): removed enums from Pydantic models to make them serialisable

This commit is contained in:
2025-03-19 15:33:22 +01:00
committed by wyzula-jan
parent 58b0c7ddc1
commit 43b747ec8a

View File

@ -5,6 +5,7 @@ import enum
from bec_lib.device import ComputedSignal, Device, Positioner, ReadoutPriority from bec_lib.device import ComputedSignal, Device, Positioner, ReadoutPriority
from bec_lib.device import Signal as BECSignal from bec_lib.device import Signal as BECSignal
from bec_lib.logger import bec_logger from bec_lib.logger import bec_logger
from pydantic import field_validator
from qtpy.QtCore import Property, Signal, Slot from qtpy.QtCore import Property, Signal, Slot
from bec_widgets.utils import ConnectionConfig from bec_widgets.utils import ConnectionConfig
@ -25,13 +26,35 @@ class BECDeviceFilter(enum.Enum):
class DeviceInputConfig(ConnectionConfig): class DeviceInputConfig(ConnectionConfig):
device_filter: list[BECDeviceFilter] = [] device_filter: list[str] = []
readout_filter: list[ReadoutPriority] = [] readout_filter: list[str] = []
devices: list[str] = [] devices: list[str] = []
default: str | None = None default: str | None = None
arg_name: str | None = None arg_name: str | None = None
apply_filter: bool = True apply_filter: bool = True
@field_validator("device_filter")
@classmethod
def check_device_filter(cls, v, values):
valid_device_filters = [entry.value for entry in BECDeviceFilter]
for filt in v:
if filt not in valid_device_filters:
raise ValueError(
f"Device filter {filt} is not a valid device filter {valid_device_filters}."
)
return v
@field_validator("readout_filter")
@classmethod
def check_readout_filter(cls, v, values):
valid_device_filters = [entry.value for entry in ReadoutPriority]
for filt in v:
if filt not in valid_device_filters:
raise ValueError(
f"Device filter {filt} is not a valid device filter {valid_device_filters}."
)
return v
class DeviceInputBase(BECWidget): class DeviceInputBase(BECWidget):
""" """