minimalistic event system (a bag of handlers)
Project description
visitoolkit_eventsystem
minimalistic event system
Installation via pip
https://pypi.org/project/visitoolkit-eventsystem
(runs on Python 3)
description
Registered handlers (a bag of handlers) getting called when event gets fired
using ideas from "axel events" https://github.com/axel-events/axel
and "event system" from http://www.valuedlessons.com/2008/04/events-in-python.html
usage
from visitoolkit_eventsystem import eventsystem
# handlers are callback functions in your code,
# when firing an event visitoolkit_eventsystem will call them with the given argument(s)
def cb1(event_id, *arg, **args):
if event_id > 0:
# handle event...
return True
else:
return False
# Default is synchronous execution of handlers (blocking main thread, collecting all results)
# sync_mode=False means asynchronous execution of handlers (one background thread calls all handlers)
# =>Details about flag "exc_info"(default is True): https://docs.python.org/3/library/sys.html#sys.exc_info
# =>Flag "traceback" (default is False) controls verbosity of error_info when an exception occurred
es = eventsystem.EventSystem(sync_mode=True)
# adding or removing handlers in list-like syntax
es += cb1
#The execution result is returned as a list containing all results per handler having this structure:
# exec_result = [
# (True, result, handler), # on success
# (False, error_info, handler), # on error
# (None, None, handler), ... # asynchronous execution
# ]
# firing event
result = es(42)
Increasing logging level for bughunting:
import logging
logging.getLogger('visitoolkit_eventsystem').setLevel(logging.DEBUG)
background information
visitoolkit_eventsystem is used in visitoolkit_connector as core part of visitoolkit.
visitoolkit is written for the proprietary Building and Process Management System
'ProMoS NT' (c) MST Systemtechnik AG'
(also known as 'Saia Visi.Plus' (c) Saia-Burgess Controls AG)
Intention:
Support creator of visualisation projects...
Add efficiency...
Reduce manual error-prone processes...
Add missing features...
Disclaimer: Use 'visitoolkit' at your own risk!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for visitoolkit-eventsystem-0.1.5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3842a32cfc6e42c99f3bc5723e30b1ac605e462a2d94ebcd3582108d39f017c |
|
MD5 | 8019fd6f36b99615ce1916e5c5215eeb |
|
BLAKE2b-256 | 8a402b126caa647c5f5e5397a3e84410d9596c3c1ca801987f735c2adb9bdb25 |
Hashes for visitoolkit_eventsystem-0.1.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcf8d7f038ab418a539ffb8d50bfc1c9661195c450b6eb11f584cc3d7a91e7c4 |
|
MD5 | bee6f48f03d960c97390c28fe4c02301 |
|
BLAKE2b-256 | 95502961f8e80c22613db2cadfbe47da9e85871532753ce4ca00d874019893a5 |