zen_garden.plugin_system.events¶
Event utilities for the plugin system.
Provides a base Event enum and an EventPublisher to register and trigger events.
Classes
|
Base enum for plugin events. |
Class to register and trigger events. |
- class zen_garden.plugin_system.events.Event(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
Base enum for plugin events.
Extend this class to declare specific events used by plugins.
Example
>>> class Event(Enum): >>> after_model_construction = auto()
The event definition can be used as a decorator as:
>>> @EventPublisher.register(Event.after_model_construction) >>> def any_function(any_arg): >>> pass
The event can be triggered in the core as:
>>> EventPublisher.trigger(Event.after_model_construction, any_arg)
- class zen_garden.plugin_system.events.EventPublisher¶
Class to register and trigger events.
Observers are callables that can be registered to a specific event. When an event is triggered, all registered observers are invoked in registration order with the provided arguments.
Example
An observer is defined in a plugin module as a function decorated with EventPublisher.register:
>>> @EventPublisher.register(Event.after_model_construction) >>> def any_function(any_arg): >>> pass
- classmethod deregister_all()¶
Deregister all observers for all events.
- classmethod observers()¶
Returns all observers registered.