Skip to content

Handlers

minevent.handlers

Implement the event handlers.

minevent.handlers.BaseEventHandler

Bases: ABC

Define the base class to implement an event handler.

A child class has to implement the following methods:

- ``handle``
- ``equal``

Example usage:

>>> from minevent import EventHandler
>>> def hello_handler() -> None:
...     print("Hello!")
...
>>> handler = EventHandler(hello_handler)
>>> handler
EventHandler(
  (handler): <function hello_handler at 0x...>
  (handler_args): ()
  (handler_kwargs): {}
)
>>> handler.handle()
Hello!

minevent.handlers.BaseEventHandler.equal abstractmethod

equal(other: Any) -> bool

Compare two event handlers.

Parameters:

Name Type Description Default
other Any

Specifies the other object to compare with.

required

Returns:

Type Description
bool

True if the two event handlers are equal, otherwise False.

Example usage:

>>> from minevent import EventHandler
>>> def hello_handler() -> None:
...     print("Hello!")
...
>>> handler = EventHandler(hello_handler)
>>> handler.equal(EventHandler(hello_handler))
True
>>> handler.equal(EventHandler(print, handler_args=["Hello!"]))
False

minevent.handlers.BaseEventHandler.handle abstractmethod

handle() -> None

Handle the event.

Example usage:

>>> from minevent import EventHandler
>>> def hello_handler() -> None:
...     print("Hello!")
...
>>> handler = EventHandler(hello_handler)
>>> handler.handle()
Hello!

minevent.handlers.BaseEventHandlerWithArguments

Bases: BaseEventHandler

Define a base class to implement an event handler with positional and/or keyword arguments.

A child class has to implement the equal method.

Parameters:

Name Type Description Default
handler Callable

Specifies the handler.

required
handler_args Sequence | None

Specifies the positional arguments of the handler.

None
handler_kwargs dict | None

Specifies the arbitrary keyword arguments of the handler.

None

Example usage:

>>> from minevent import EventHandler
>>> def hello_handler() -> None:
...     print("Hello!")
...
>>> handler = EventHandler(hello_handler)
>>> handler
EventHandler(
  (handler): <function hello_handler at 0x...>
  (handler_args): ()
  (handler_kwargs): {}
)
>>> handler.handle()
Hello!
>>> handler = EventHandler(print, handler_args=["Hello!"])
>>> handler.handle()
Hello!

minevent.handlers.BaseEventHandlerWithArguments.handler property

handler: Callable

The handler.

minevent.handlers.BaseEventHandlerWithArguments.handler_args property

handler_args: tuple

Variable length argument list of the handler.

minevent.handlers.BaseEventHandlerWithArguments.handler_kwargs property

handler_kwargs: dict

Arbitrary keyword arguments of the handler.

minevent.handlers.ConditionalEventHandler

Bases: BaseEventHandlerWithArguments

Implement a conditional event handler.

The handler is executed only if the condition is True.

Parameters:

Name Type Description Default
handler Callable

Specifies the handler.

required
condition BaseCondition

Specifies the condition for this event handler. The condition should be callable without arguments.

required
handler_args Sequence | None

Specifies the positional arguments of the handler.

None
handler_kwargs dict | None

Specifies the arbitrary keyword arguments of the handler.

None

Example usage:

>>> from minevent import ConditionalEventHandler, PeriodicCondition
>>> def hello_handler() -> None:
...     print("Hello!")
...
>>> handler = ConditionalEventHandler(hello_handler, PeriodicCondition(freq=3))
>>> handler
ConditionalEventHandler(
  (handler): <function hello_handler at 0x...>
  (handler_args): ()
  (handler_kwargs): {}
  (condition): PeriodicCondition(freq=3, step=0)
)
>>> handler.handle()
Hello!
>>> handler.handle()
>>> handler.handle()
>>> handler.handle()
Hello!

minevent.handlers.ConditionalEventHandler.condition property

condition: BaseCondition

The condition.

minevent.handlers.EventHandler

Bases: BaseEventHandlerWithArguments

Implement a simple event handler.

Example usage:

>>> from minevent import EventHandler
>>> def hello_handler() -> None:
...     print("Hello!")
...
>>> handler = EventHandler(hello_handler)
>>> handler
EventHandler(
  (handler): <function hello_handler at 0x...>
  (handler_args): ()
  (handler_kwargs): {}
)
>>> handler.handle()
Hello!