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
File details
Details for the file visitoolkit-eventsystem-0.1.5.tar.gz
.
File metadata
- Download URL: visitoolkit-eventsystem-0.1.5.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3842a32cfc6e42c99f3bc5723e30b1ac605e462a2d94ebcd3582108d39f017c |
|
MD5 | 8019fd6f36b99615ce1916e5c5215eeb |
|
BLAKE2b-256 | 8a402b126caa647c5f5e5397a3e84410d9596c3c1ca801987f735c2adb9bdb25 |
File details
Details for the file visitoolkit_eventsystem-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: visitoolkit_eventsystem-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcf8d7f038ab418a539ffb8d50bfc1c9661195c450b6eb11f584cc3d7a91e7c4 |
|
MD5 | bee6f48f03d960c97390c28fe4c02301 |
|
BLAKE2b-256 | 95502961f8e80c22613db2cadfbe47da9e85871532753ce4ca00d874019893a5 |