Python events handling, C# style
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
axel-0.0.7-py3-none-any.whl
(8.1 kB
view details)
File details
Details for the file axel-0.0.7-py3-none-any.whl.
File metadata
- Download URL: axel-0.0.7-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44a0fa2318a1761d629e315d2f0ca00f3ba370cd3032ea2971ed630873de63b1
|
|
| MD5 |
319d7187e5ae2333c3786c2fbeeadc1c
|
|
| BLAKE2b-256 |
8e670390d9e5661dd974c4d76dc1ab0e151c20c5a4af69047d34b7348497d443
|