Coder Social home page Coder Social logo

pyobservable's Introduction

pyobservable

observable module for python Version: 0.00.01


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

Author: Timo Furrer [email protected]
Version: 0.00.01

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

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:

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

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

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:

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:

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

Remove all handlers from a specified event:

obs.off("error")

Clear all events:

obs.off()

pyobservable's People

Contributors

timofurrer avatar michaelwills avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.