Skip to content

Commit cd1f60b

Browse files
committed
feat: history: signal_lists, get_signal_events
Signed-off-by: Yves Bastide <[email protected]>
1 parent 2ae53d4 commit cd1f60b

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

simpleflow/history.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def __init__(self, history: simpleflow.swf.mapper.models.history.History) -> Non
3333
self._external_workflows_signaling: dict[int, dict[str, Any]] = {}
3434
self._external_workflows_canceling: dict[str, dict[str, Any]] = {}
3535
self._signals: dict[str, dict[str, Any]] = {}
36+
self._signal_lists: collections.defaultdict[str, list[dict[str, Any]]] = collections.defaultdict(list)
3637
self._signaled_workflows = collections.defaultdict(list)
3738
self._markers: dict[str, list[dict[str, Any]]] = {}
3839
self._timers: dict[str, dict[str, Any]] = {}
@@ -75,6 +76,13 @@ def signals(self):
7576
"""
7677
return self._signals
7778

79+
@property
80+
def signal_lists(self):
81+
return self._signal_lists
82+
83+
def get_signal_events(self, signal_name):
84+
return self._signal_lists.get(signal_name, [])
85+
7886
@property
7987
def cancel_requested(self):
8088
"""
@@ -437,6 +445,7 @@ def parse_workflow_event(self, events: list[Event], event: WorkflowExecutionEven
437445
"timestamp": event.timestamp,
438446
}
439447
self._signals[event.signal_name] = signal
448+
self._signal_lists[event.signal_name].append(signal)
440449
self._tasks.append(signal)
441450
elif event.state == "cancel_requested":
442451
cancel_requested = {

0 commit comments

Comments
 (0)