BF-EVENTS - Event Handling

../../../../../../../_images/MLPro-BF-Events_class_diagram.drawio.png

Ver. 1.2.1 (2023-11-18)

This module provides classes for event handling. To this regard, the property class Eventmanager is provided to add event functionality to child classes by inheritence.

class mlpro.bf.events.Event(p_raising_object, p_tstamp: datetime = None, **p_kwargs)

Bases: TStamp

Root class for events. It is ready to use and transfers the raising object and further key/value data to the event handler.

Parameters:
  • p_raising_object – Reference to object that raised the event.

  • **p_kwargs – List of named parameters

get_raising_object()
get_data()
class mlpro.bf.events.EventManager(p_logging=True)

Bases: Log

This property class provides universal event management functionalities to be inherited to child classes.

Parameters:

p_logging – Log level (see constants of class Log). Default: Log.C_LOG_ALL

C_TYPE = 'EventManager'
register_event_handler(p_event_id: str, p_event_handler)

Registers an event handler.

Parameters:
  • p_event_id (str) – Unique event id

  • p_event_handler – Reference to an event handler method with parameters p_event_id and p_event_object:Event

remove_event_handler(p_event_id: str, p_event_handler)

Removes an already registered event handler.

Parameters:
  • p_event_id – Unique event id

  • p_event_handler – Reference to an event handler method.

_raise_event(p_event_id: str, p_event_object: Event)

Raises an event and calls all registered handlers. To be used inside an event manager class.

Parameters:
  • p_event_id (str) – Unique event id

  • p_event_object (Event) – Event object with further context informations