From ba9dbc03f1f866428da99ef99e963854b3f07456 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mose=20M=C3=BCller?= <mosemueller@gmail.com>
Date: Tue, 21 May 2024 14:03:21 +0200
Subject: [PATCH] removes attribute key from observers dict if list of
 observers is empty

---
 src/pydase/observer_pattern/observable/observable_object.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/pydase/observer_pattern/observable/observable_object.py b/src/pydase/observer_pattern/observable/observable_object.py
index aa39413..d749ef5 100644
--- a/src/pydase/observer_pattern/observable/observable_object.py
+++ b/src/pydase/observer_pattern/observable/observable_object.py
@@ -32,6 +32,10 @@ class ObservableObject(ABC):
         if attribute in self._observers:
             self._observers[attribute].remove(observer)
 
+            # remove attribute key from observers dict if list of observers is empty
+            if not self._observers[attribute]:
+                del self._observers[attribute]
+
     @abstractmethod
     def _remove_observer_if_observable(self, name: str) -> None:
         """Removes the current object as an observer from an observable attribute.