Skip to main content

event system for python

Project description

observable module for python Version: 0.00.03


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

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

How to install

Over pip:

$ pip install observable

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.03.tar.gz (2.9 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: observable-0.00.03.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for observable-0.00.03.tar.gz
Algorithm Hash digest
SHA256 0ac95d135748ea7034ab2df9928c2ad63a71392883389b54221e4b1f9e3360a6
MD5 f99224bf5e2e46f7a90b5a790f5fb489
BLAKE2b-256 708f510d91a8ce6f9a3f151bd44068f8ea6745e584c6eeec0d582e0e3da82b9a

See more details on using hashes here.

Supported by

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