Skip to content

Manager

minevent.manager

Implement the event manager.

minevent.manager.EventManager

Implement an event manager.

This event manager allows adding event handlers and firing events. An event is represented by a case-sensitive string.

Example usage:

>>> from minevent import EventHandler, EventManager
>>> def hello_handler():
...     print("Hello!")
...
>>> manager = EventManager()
>>> manager.add_event_handler("my_event", EventHandler(hello_handler))
>>> manager.trigger_event("my_event")
Hello!

minevent.manager.EventManager.last_triggered_event property

last_triggered_event: str | None

Get the last event name that was triggered.

Returns:

Type Description
str | None

The last event name that was fired of None if no event was fired.

Example usage:

>>> from minevent import EventHandler, EventManager
>>> manager = EventManager()
>>> def hello_handler():
...     print("Hello!")
...
>>> manager.add_event_handler("my_event", EventHandler(hello_handler))
>>> manager.trigger_event("my_event")
Hello!
>>> manager.last_triggered_event

minevent.manager.EventManager.add_event_handler

add_event_handler(
    event: str, event_handler: BaseEventHandler
) -> None

Add an event handler to an event.

The event handler will be called everytime the event happens.

Parameters:

Name Type Description Default
event str

Specifies the event to attach the event handler.

required
event_handler BaseEventHandler

Specifies the event handler to attach to the event.

required

Example usage:

>>> from minevent import EventManager, EventHandler
>>> def hello_handler():
...     print("Hello!")
...
>>> manager = EventManager()
>>> manager.add_event_handler("my_event", EventHandler(hello_handler))

minevent.manager.EventManager.has_event_handler

has_event_handler(
    event_handler: BaseEventHandler,
    event: str | None = None,
) -> bool

Indicate if a handler is registered in the event manager.

Note that this method relies on the equal method of the input event handler to compare event handlers.

Parameters:

Name Type Description Default
event_handler BaseEventHandler

Specifies the event handler to check.

required
event str | None

Specifies an event to check. If the value is None, it will check all the events.

None

Example usage:

>>> from minevent import EventHandler, EventManager
>>> def hello_handler():
...     print("Hello!")
...
>>> manager = EventManager()
>>> # Check if `hello_handler` is registered in the event manager
>>> manager.has_event_handler(EventHandler(hello_handler))
False
>>> # Check if `hello_handler` is registered in the event manager for 'my_event' event
>>> manager.has_event_handler(EventHandler(hello_handler), "my_event")
False
>>> # Add an event handler
>>> manager.add_event_handler("my_event", EventHandler(hello_handler))
>>> # Check if `hello_handler` is registered in the event manager
>>> manager.has_event_handler(EventHandler(hello_handler))
True
>>> # Check if `hello_handler` is registered in the event manager for 'my_event' event
>>> manager.has_event_handler(EventHandler(hello_handler), "my_event")
True
>>> # Check if `hello_handler` is registered in the event manager for 'my_other_event' event
>>> manager.has_event_handler(EventHandler(hello_handler), "my_other_event")
False

minevent.manager.EventManager.remove_event_handler

remove_event_handler(
    event: str, event_handler: BaseEventHandler
) -> None

Remove an event handler of a given event.

Note that if the same event handler was added multiple times the event, all the duplicated handlers are removed. This method relies on the equal method of the input event handler to compare event handlers.

Parameters:

Name Type Description Default
event str

Specifies the event handler is attached to.

required
event_handler BaseEventHandler

Specifies the event handler to remove.

required

Raises:

Type Description
ValueError

if the event does not exist or if the handler is not attached to the event.

Example usage:

>>> from minevent import EventHandler, EventManager
>>> manager = EventManager()
>>> def hello_handler():
...     print("Hello!")
...
>>> manager.add_event_handler("my_event", EventHandler(hello_handler))
>>> # Check if `hello_handler` is registered in the event manager for 'my_event' event
>>> manager.has_event_handler(EventHandler(hello_handler), "my_event")
True
>>> # Remove the event handler of the engine
>>> manager.remove_event_handler("my_event", EventHandler(hello_handler))
>>> # Check if `hello_handler` is registered in the event manager for 'my_event' event
>>> manager.has_event_handler(EventHandler(hello_handler), "my_event")
False

minevent.manager.EventManager.reset

reset() -> None

Reset the event manager.

This method removes all the event handlers from the event manager.

Example usage:

>>> # Create an event manager
>>> from minevent import EventManager
>>> manager = EventManager()
>>> # Add an event handler to the engine
>>> def hello_handler():
...     print("Hello!")
...
>>> from minevent import EventHandler
>>> manager.add_event_handler("my_event", EventHandler(hello_handler))
>>> # Check if `hello_handler` is registered in the event manager for 'my_event' event
>>> manager.has_event_handler(EventHandler(hello_handler), "my_event")
True
>>> manager.trigger_event("my_event")
>>> manager.last_triggered_event
my_event
>>> # Reset the event manager
>>> manager.reset()
>>> # Check if `hello_handler` is registered in the event manager for 'my_event' event
>>> manager.has_event_handler(EventHandler(hello_handler), "my_event")
False
>>> manager.last_triggered_event
None

minevent.manager.EventManager.trigger_event

trigger_event(event: str) -> None

Trigger the handler(s) for the given event.

Parameters:

Name Type Description Default
event str

Specifies the event to fire.

required

Example usage:

>>> from minevent import EventHandler, EventManager
>>> manager = EventManager()
>>> manager.trigger_event("my_event")  # do nothing because there is no event handler
>>> def hello_handler():
...     print("Hello!")
...
>>> manager.add_event_handler("my_event", EventHandler(hello_handler))
>>> manager.trigger_event("my_event")
Hello!