saealib.CallbackManager

class saealib.CallbackManager[source]

Bases: object

Manages event handlers.

Handlers are registered per concrete event type and called in registration order when an event of that type is dispatched.

handlers

Mapping from event class to list of registered handler functions.

Type:

defaultdict[type[Event], list[Callable]]

Methods

__init__

Initialize CallbackManager.

dispatch

Invoke all handlers registered for the type of event.

register

Register a handler for an event type.

replace

Replace a registered handler with another.

unregister

Remove a previously registered handler.

Method Details

CallbackManager.__init__()[source]

Initialize CallbackManager.

Return type:

None

CallbackManager.dispatch(event)[source]

Invoke all handlers registered for the type of event.

Parameters:

event (Event) – The event object to dispatch. Handlers receive this object directly and may modify its mutable fields.

Return type:

None

CallbackManager.register(event_type, func)[source]

Register a handler for an event type.

Parameters:
  • event_type (type[E]) – The concrete event class to listen for.

  • func (Callable[[E], None]) – Handler function. Receives the event object and returns nothing.

Return type:

None

CallbackManager.replace(event_type, old, new)[source]

Replace a registered handler with another.

Parameters:
  • event_type (type[E]) – The event class whose handler list to modify.

  • old (Callable[[E], None]) – The handler to replace. Raises ValueError if not found.

  • new (Callable[[E], None]) – The replacement handler.

Return type:

None

CallbackManager.unregister(event_type, func)[source]

Remove a previously registered handler.

Parameters:
  • event_type (type[E]) – The event class the handler was registered for.

  • func (Callable[[E], None]) – The handler to remove. Raises ValueError if not found.

Return type:

None