Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

visitoolkit-eventsystem-0.1.5.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

visitoolkit_eventsystem-0.1.5-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

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

Hashes for visitoolkit-eventsystem-0.1.5.tar.gz
Algorithm Hash digest
SHA256 f3842a32cfc6e42c99f3bc5723e30b1ac605e462a2d94ebcd3582108d39f017c
MD5 8019fd6f36b99615ce1916e5c5215eeb
BLAKE2b-256 8a402b126caa647c5f5e5397a3e84410d9596c3c1ca801987f735c2adb9bdb25

See more details on using hashes here.

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

Hashes for visitoolkit_eventsystem-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bcf8d7f038ab418a539ffb8d50bfc1c9661195c450b6eb11f584cc3d7a91e7c4
MD5 bee6f48f03d960c97390c28fe4c02301
BLAKE2b-256 95502961f8e80c22613db2cadfbe47da9e85871532753ce4ca00d874019893a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page