From cddb83451a1fba1687cb863d18ef8b09f8f8cfbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Thu, 4 Jul 2024 17:25:18 +0200 Subject: [PATCH] observer: first check if full access path contains private or protected attributes As protected and private attributes are not stored in the cache, it does not make sense to compare the cached value against the new value. --- src/pydase/data_service/data_service_observer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pydase/data_service/data_service_observer.py b/src/pydase/data_service/data_service_observer.py index 424a199..febd157 100644 --- a/src/pydase/data_service/data_service_observer.py +++ b/src/pydase/data_service/data_service_observer.py @@ -37,8 +37,9 @@ class DataServiceObserver(PropertyObserver): ) cached_value = cached_value_dict.get("value") - if cached_value != dump(value)["value"] and all( - part[0] != "_" for part in full_access_path.split(".") + if ( + all(part[0] != "_" for part in full_access_path.split(".")) + and cached_value != dump(value)["value"] ): logger.debug("'%s' changed to '%s'", full_access_path, value)