Events
August 1, 2026 · View on GitHub
Module: ovos_utils.events
EventContainer
Tracks message bus handlers registered by a skill or plugin, allowing clean unregistration on shutdown.
from ovos_utils.events import EventContainer
container = EventContainer(bus)
container.add("my.event", handler)
container.add("my.once", handler, once=True)
# Later:
container.remove("my.event")
container.clear() # remove all
Methods
| Method | Description |
|---|---|
set_bus(bus) | Attach a message bus |
add(name, handler, once=False) | Register a handler. If once=True, automatically unregisters after first call |
remove(name) → bool | Remove all handlers for name. Returns True if any were found |
clear() | Unregister and clear all tracked handlers |
__iter__ | Iterate over (name, handler) pairs |
Note on
remove(): Due to wrapper functions,bus.remove(name, handler)may not find the actual registered callable.EventContainer.remove()therefore callsbus.remove_all_listeners(name)to reliably clear all handlers for a given event name.
Handler Wrappers
create_wrapper(handler, skill_id, on_start, on_end, on_error)
Creates a wrapped handler for skill intent handlers. The wrapper:
- Calls
unmunge_message(message, skill_id)to strip the skill ID prefix from intent entity keys - Calls
on_start(message)if provided - Calls
handler()orhandler(message)depending on signature - Calls
on_error(e)oron_error(e, message)on exception - Always calls
on_end(message)in thefinallyblock
create_basic_wrapper(handler, on_error)
Simpler wrapper that calls handler() or handler(message) and calls on_error(e) on exception. Used by EventSchedulerInterface for scheduled events.
unmunge_message(message, skill_id)
Strips the letterified skill ID prefix from intent entity keys in message.data. For example, key myskillMyentity becomes Myentity for skill my.skill.
get_handler_name(handler) → str
Returns a human-readable name for a handler function, including the owner object's name if available.
EventSchedulerInterface
Deprecated. Moved to
ovos_bus_client.apis.events.EventSchedulerInterface.
Interface for scheduling events via the OVOS message bus scheduler. Emits mycroft.scheduler.* messages.
# Preferred import:
from ovos_bus_client.apis.events import EventSchedulerInterface
Methods
| Method | Description |
|---|---|
schedule_event(handler, when, data, name, context) | Schedule a one-time event |
schedule_repeating_event(handler, when, interval, data, name, context) | Schedule a repeating event |
update_scheduled_event(name, data) | Update event data |
cancel_scheduled_event(name) | Cancel a pending event |
get_scheduled_event_status(name) → int | Seconds until next trigger |
cancel_all_repeating_events() | Cancel all repeating events |
shutdown() | Cancel repeating events and clear all registered handlers |
when may be a datetime, or a positive int/float representing seconds from now.
← FakeBus · Home · Utilities →