adds setattr validation to observable if validate_set decorator is used

This commit is contained in:
Mose Müller 2024-05-28 11:21:55 +02:00
parent 203cc0f0f5
commit 052bf79487

View File

@ -1,6 +1,10 @@
import logging
from typing import Any
from pydase.observer_pattern.observable.decorators import (
_validate_value_was_correctly_set,
has_validate_set_decorator,
)
from pydase.observer_pattern.observable.observable_object import ObservableObject
from pydase.utils.helpers import is_property_attribute
@ -35,7 +39,12 @@ class Observable(ObservableObject):
super().__setattr__(name, value)
self._notify_changed(name, value)
if is_property_attribute(self, name) and has_validate_set_decorator(
getattr(type(self), name)
):
_validate_value_was_correctly_set(obj=self, name=name, value=value)
else:
self._notify_changed(name, value)
def __getattribute__(self, name: str) -> Any:
if is_property_attribute(self, name):