Skip to main content

Signals with coroutines!

Project description

AsyncBlink is a small extention to Blinker and enables you to use coroutines as receivers for your signals.

Install

Installation is simple, via pip:

   $ pip install asyncblink

Usage

Usage is simple, too. Create a signal, connect some receivers to it and then use the send() method to trigger all receivers

from asyncblink import signal
my_signal = signal('nice-signal')


async def coro_receiver(sender, **kwargs):
    # an expensive io operation here
    return 'done'

def receiver(sender):
    return 'ok'

my_signal.connect(coro_receiver)
my_signal.connect(receiver)
my_signal.send('some-sender')

Other than that, AsyncBlink's usage is the same as Blinker, Take a look at the `Blinker documentation for further information.

Why this still exists?

Blinker now supports coroutines via signal.async_send, so why asyncblink is still alive?

The blinker's implementation awaits for coroutines and it is not what I want so asyncblink schedules the coroutine and returns a task.

Source Code

Source code is hosted on github.

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

asyncblink-0.4.0.tar.gz (2.5 kB view details)

Uploaded Source

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