Skip to main content

event system for python

Project description

observable module for python Version: 0.00.02


Writing this module was an inspiration by https://github.com/js-coder/observable.

Author: Timo Furrer tuxtimo@gmail.com Version: 0.00.02

How to install

Just clone this repository with:

$ git clone https://github.com/timofurrer/pyobservable.git

and install it with:

# python setup.py install

Note: you may need root privileges to execute setup.py

with make

When you have cloned the repository you can install it with

sudo make install

If you want to install just if all nose tests are passing

sudo make

nose tests

There are some nose tests in the test/ directory. If you haven’t installed nose yet - do it with

sudo pip install nose

After you’ve nose installed - test pyobservable with:

make tests

The output should be something like:

nosetests -v
test event registering with the on decorator ... ok
test event registering with the on method ... ok
test event registering with the once decorator ... ok
test event registering with the once method ... ok
test event triggering with event registered with on ... ok
test event triggering with event registered with once ... ok
test exception raising for not existing events ... ok
test obs.off method ... ok
test exception raising in the off method ... ok
test event triggering with arguments ... ok
test event triggering with argument list ... ok
test event triggering with keyword-arguments ... ok

----------------------------------------------------------------------
Ran 12 tests in 0.003s

OK

… where just the last OK is important!

How to use

Import it with the following statement in your own program

```python from observable import Observable

obs = Observable() ```

on: Register event handler with on

There are two ways to register a function to an event. The first way is to register the event with a decorator like this:

python @obs.on("error") def error_func(message): print("Error: %s" % message)

The second way is to register it with a method call:

python def error_func(message): print("Error: %s" % message) obs.on("error", error_func)

once: Register event handler with once

once works like on, but once the event handler is triggered it will be removed and cannot be triggered again.

trigger: trigger event

You can trigger a registered event with the trigger method:

python obs.trigger("error", "This is my error message")

If no handler for the event error could be found an Observable.NoHandlerFound-Exception will be raised.

off: remove handler and events

Remove a handler from a specified event:

python obs.off("error", error_func)

python obs.off("error", [error_func, second_error_func])

Remove all handlers from a specified event:

python obs.off("error")

Clear all events:

python obs.off()

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

observable-0.00.02.tar.gz (2.9 kB view details)

Uploaded Source

File details

Details for the file observable-0.00.02.tar.gz.

File metadata

File hashes

Hashes for observable-0.00.02.tar.gz
Algorithm Hash digest
SHA256 ef278c1a3e0b7bb15813cfd5f2121e3f0018f1768e3b02afc417058059fca124
MD5 ecddd98a98c52263e03ddfbb67cd3b5b
BLAKE2b-256 53a5ec78332d400eb104ef7526a63ae8962374ab4ccdeb14f7d3eef7fe93a0b4

See more details on using hashes here.

Provenance

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