Skip to main content

The Blinker Herald includes helpers to easily emit signals using Blinker. Decorate a function or method with @blinker_herald.emit() and pre and post signals will automatically be emitted to connected handlers.

Project description

Blinker Herald

https://img.shields.io/pypi/v/blinker_herald.svg https://img.shields.io/travis/rochacbruno/blinker_herald.svg Documentation Status docs/The_Herald.jpg

The Blinker Herald includes helpers to easily emit signals using the excelent blinker library.

Decorate a function or method with @blinker_herald.emit() and pre and post signals will be automatically emitted to all connected handlers.

Features

  • All the features provided by blinker
    • An easy decorator @emit() to magically emit signals when your functions are called and before it returns a result.
  • Customizable for your needs

Let’s say you have a class that does something:

from blinker_herald import emit

class SomeClass(object):
    @emit()
    def do_something(self, arg1):
        # here is were magically the 'pre' signal will be sent
        return 'something done'
        # here is were magically the 'post' signal will be sent

using @emit decorator makes blinker_herald to emit a signal for that method and now you can connect handlers to capture that signals

You can capture pre signal to manipulate the object:

SomeClass.do_something.pre.connect
def handle_pre(sender, signal_emitter, **kwargs):
    signal_emitter.foo = 'bar'
    signal_emitter.do_another_thing()

And you can also capture the post signal to log the results:

SomeClass.do_something.post.connect
def handle_post(sender, signal_emitter, result, **kwargs):
    logger.info("The method {0} returned {1}".format(sender, result))

Credits

This software was first created by SatelliteQE team to provide signals to Robottelo and Nailgun

History

0.1.0 (2016-05-28)

  • First release on PyPI.

Project details


Download files

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

Files for blinker_herald, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size blinker_herald-0.1.0-py2.py3-none-any.whl (6.6 kB) File type Wheel Python version 2.7 Upload date Hashes View hashes
Filename, size blinker_herald-0.1.0.tar.gz (134.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page