Add error handling for observer callbacks in GraphStateManager
This commit is contained in:
parent
2b215e66f4
commit
6aec697c2a
1 changed files with 9 additions and 1 deletions
|
|
@ -2,6 +2,8 @@ from collections import defaultdict
|
||||||
from threading import Lock
|
from threading import Lock
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
|
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
|
|
||||||
class GraphStateManager:
|
class GraphStateManager:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -13,6 +15,8 @@ class GraphStateManager:
|
||||||
with self.lock:
|
with self.lock:
|
||||||
if key not in self.states:
|
if key not in self.states:
|
||||||
self.states[key] = []
|
self.states[key] = []
|
||||||
|
elif not isinstance(self.states[key], list):
|
||||||
|
self.states[key] = [self.states[key]]
|
||||||
self.states[key].append(new_state)
|
self.states[key].append(new_state)
|
||||||
self.notify_append_observers(key, new_state)
|
self.notify_append_observers(key, new_state)
|
||||||
|
|
||||||
|
|
@ -36,4 +40,8 @@ class GraphStateManager:
|
||||||
|
|
||||||
def notify_append_observers(self, key, new_state):
|
def notify_append_observers(self, key, new_state):
|
||||||
for callback in self.observers[key]:
|
for callback in self.observers[key]:
|
||||||
|
try:
|
||||||
callback(key, new_state, append=True)
|
callback(key, new_state, append=True)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error in observer {callback} for key {key}: {e}")
|
||||||
|
logger.warning("Callbacks not implemented yet")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue