Summary
This is a port for Python v3.6+
of the Symfony Event Dispatcher.
This event dispatcher follows a pattern called the "Mediator" pattern.
In software engineering, the mediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter the program's running behavior.
pip install evee
from evee import EventDispatcher
from evee import Event
def pre_foo(self, event: Event, event_name: str):
print("pre_foo was called")
def post_foo(self, event: Event, event_name: str):
print("post_foo was called")
dispatcher = EventDispatcher()
dispatcher.add_listener('pre.foo', pre_foo)
dispatcher.add_listener('post.foo', post_foo)
dispatcher.dispatch('pre.foo')
print('Doo Foo work')
dispatcher.dispatch('post.foo')