Event Listeners

class detroit_live.events.event_listeners.EventListeners

Collection of event listeners mapped by event types.

__getitem__(event_type: str) EventListenersGroup

Gets a group of event listeners given the specified event_type.

Parameters:

event_type (str) – Event type

Returns:

Group of event listeners

Return type:

EventListenersGroup

__contains__(event_type: str) bool

Checks if the specified event_type exists in the collection.

Parameters:

event_type (str) – Event type

Returns:

True if found

Return type:

bool

__call__(event: dict[str, Any]) Iterator[list[dict[str, Any]]]

Applies the specified event to all matched event listeners.

Parameters:

event (dict[str, Any]) – Event received by the websocket

Returns:

Iterator of updated values sent through websocket

Return type:

Iterator[list[dict[str, Any]]]

add_event_listener(target: EventListener)

Adds an event listener to the collection

Parameters:

target (EventListener) – Event listener

remove_event_listener(typename: str, name: str, node: Element)

Removes an event listener from the collection

Parameters:
  • typename (str) – Typename

  • name (str) – Name

  • node (etree.Element) – Node element

into_script(host: str | None = None, port: int | None = None) str

Converts event listeners into a script (str) used by JavaScript.

Parameters:
  • host (str | None) – Host name value

  • port (int | None) – Port value

Returns:

Script used by JavaScript

Return type:

str

keys() set[str]

Returns the set of event types

Returns:

Set of event types

Return type:

set[str]

values() list[EventListenersGroup]

Returns a list of groups of event listeners

Returns:

List of groups of event listeners

Return type:

list[EventListenersGroup]

class detroit_live.events.event_listeners.EventListenersGroup(typename: str)

Class which groups event listeners by typenames, elements (nodes) and names.

event

Event class

Type:

type[Event]

event_type

Event type

Type:

str

__setitem__(key: tuple[Element, str, str], event_listener: EventListener)

Sets an event listener given a key.

Parameters:
  • key (tuple[etree.Element, str, str]) – Tuple (node, typename, name)

  • event_listener (EventListener) – Event listener object

get(key: tuple[Element, str, str]) EventListener | None

Gets an event listener given the specified key if it exists else returns None.

Parameters:

key (tuple[etree.Element, str, str]) – Tuple (node, typename, name)

Returns:

Even listener if found

Return type:

EventListener | None

pop(key: tuple[Element, str, str], default: Any = None) EventListener | Any

Pops the event listener given the specified key. If not found, it returns default.

Parameters:
  • key (tuple[etree.Element, str, str]) – Tuple (node, typename, name)

  • default (Any) – Value returned if the event listener was not found

Returns:

Popped event listener if found else default

Return type:

EventListener | Any

search(node: Element | None = None, typename: str | None = None, name: str | None = None) list[EventListener]

Searchs all event listeners which match the values of the specified node, typename and name.

Parameters:
  • node (Optional[etree.Element]) – Node element

  • typename (str | None) – Typename

  • name (str | None) – Name associated of the typename

Returns:

List of event listeners

Return type:

list[EventListener]

filter_by(event: Event, typename: str) list[EventListener]

Filters event listeners based on the given event and typename.

Parameters:
  • event (Event) – Event

  • typename (str) – Typename of the event

Returns:

List of event listeners

Return type:

list[EventListener]

propagate(event: dict[str, Any]) Iterator[list[dict[str, Any]]]

Propagate an event to all matched event listeners.

Parameters:

event (dict[str, Any]) – JSON dictionary

Returns:

Iterator of updated values sent through websocket

Return type:

Iterator[list[dict[str, Any]]]

event_json() str

Returns the event as a JSON string used for JavaScript code.

Returns:

JSON of the event

Return type:

str

from_json(content: dict[str, Any]) Event

Converts a JSON dictionary to an event object.

Parameters:

content (dict[str, Any]) – JSON content from JavaScript

Returns:

Event object

Return type:

Event

into_script() str

Converts event listeners into a script (str) used by JavaScript.

Returns:

Script used by JavaScript

Return type:

str

class detroit_live.events.event_listeners.EventListener(typename: str, name: str, listener: ContextListener, active: bool = True, target: str | None = None)

Event listener

typename

Typename

Type:

str

name

Name associated to the typename

Type:

str

listener

Context listener

Type:

ContextListener

active

Helps to know if the event listener is activated

Type:

bool

node

Node associated to the event listener

Type:

etree.Element

target

Target

Type:

str

into_script(event_json: str) str