Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions RAT/events.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
from typing import Callable, Union, List
import RAT.rat_core
from RAT.rat_core import EventTypes, PlotEventData
from RAT.rat_core import EventTypes, PlotEventData, ProgressEventData


def notify(event_type: EventTypes, data: Union[str, PlotEventData]) -> None:
def notify(event_type: EventTypes, data: Union[str, PlotEventData, ProgressEventData]) -> None:
"""Calls registered callbacks with the data when event type has
been triggered.

Parameters
----------
event_type : EventTypes
The event type that was triggered.
data : str or PlotEventData
data : str or PlotEventData or ProgressEventData
The data sent by the event. The message event data is a string.
"""
callbacks = __event_callbacks[event_type]
for callback in callbacks:
callback(data)

def get_event_callback(event_type: EventTypes) -> List[Callable[[Union[str, PlotEventData]], None]]:
def get_event_callback(event_type: EventTypes) -> List[Callable[[Union[str, PlotEventData, ProgressEventData]], None]]:
"""Returns all callbacks registered for the given event type.

Parameters
Expand All @@ -28,20 +28,20 @@ def get_event_callback(event_type: EventTypes) -> List[Callable[[Union[str, Plot

Retuns
------
callback : Callable[[Union[str, PlotEventData]], None]
callback : Callable[[Union[str, PlotEventData, ProgressEventData]], None]
The callback for the event type.
"""
return list(__event_callbacks[event_type])


def register(event_type: EventTypes, callback: Callable[[Union[str, PlotEventData]], None]) -> None:
def register(event_type: EventTypes, callback: Callable[[Union[str, PlotEventData, ProgressEventData]], None]) -> None:
"""Registers a new callback for the event type.

Parameters
----------
event_type : EventTypes
The event type to register.
callback : Callable[[Union[str, PlotEventData]], None]
callback : Callable[[Union[str, PlotEventData, ProgressEventData]], None]
The callback for when the event is triggered.
"""
if not isinstance(event_type, EventTypes):
Expand All @@ -60,4 +60,4 @@ def clear() -> None:


__event_impl = RAT.rat_core.EventBridge(notify)
__event_callbacks = {EventTypes.Message: set(), EventTypes.Plot: set()}
__event_callbacks = {EventTypes.Message: set(), EventTypes.Plot: set(), EventTypes.Progress: set()}
2 changes: 1 addition & 1 deletion cpp/RAT
Submodule RAT updated 200 files
Loading