Skip to main content

Axel is a very small Python library inspired by C# events that allows an easy and elegant events handling.

Examples:

from axel import Event

event = Event()
def on_event(*args, **kwargs):
    return (args, kwargs)

event += on_event                     #handler registration
print(event(10, 20, y=30))
>> ((True, ((10, 20), {'y': 30}), <function on_event at 0x00BAA270>),)

event -= on_event                     #handler is unregistered
print(event(10, 20, y=30))
>> None


class Mouse(object):
    def __init__(self):
        self.click = Event(self)
        self.click += self.on_click   #handler registration

    def on_click(self, sender, *args, **kwargs):
        assert isinstance(sender, Mouse), 'Wrong sender'
        return (args, kwargs)

mouse = Mouse()
print(mouse.click(10, 20))
>> ((True, ((10, 20), {}),
>>  <bound method Mouse.on_click of <__main__.Mouse object at ...>>),)

mouse.click -= mouse.on_click         #handler is unregistered
print(mouse.click(10, 20))
>> None

Features:

- handlers can receive the sender as their first argument
- handlers can be executed in the same or separate threads
- handlers may be executed synchronous or asynchronous
- handlers execution may be synchronized on a lock
- the time allocated for the execution of a handler is controllable
- the number of actively executed handlers at one time is controllable
- the execution result of a handler can be cached
- the result of the execution is provided as a tuple ((flag, result, handler),)
- in case of error, the traceback may be provided for each handler in error

Contributors:

Erwin Mayer <traderwin at gmail dot com>
Rob van der Most <Rob at rmsoft dot nl>

Please see the documentation: https://pythonhosted.org/axel

Metadata

Release files for axel 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for axel 0.0.7
File Interpreter ABI Platform
axel-0.0.7-py3-none-any.whl Python 3 none any Details

Release files / axel-0.0.7-py3-none-any.whl

Download URL axel-0.0.7-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44a0fa2318a1761d629e315d2f0ca00f3ba370cd3032ea2971ed630873de63b1
BLAKE2b-256 checksum
How to use checksums
8e670390d9e5661dd974c4d76dc1ab0e151c20c5a4af69047d34b7348497d443
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.7 This release

1 release file

0.0.6

2 release files

0.0.5

1 release file

0.0.4

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page