async_patterns

async_patterns

https://travis-ci.org/chuck1/async_patterns.svg?branch=master https://codecov.io/gh/chuck1/async_patterns/branch/master/graph/badge.svg https://img.shields.io/pypi/v/async_patterns.svg Documentation Status https://img.shields.io/pypi/pyversions/async_patterns.svg

Useful python patterns using async.

The module contains the following submodules:

Install

pip3 install async_patterns

Test Source

git clone git@github.com:chuck1/async_patterns
cd async_patterns
pip3 install -e .
pytest

Examples

Callbacks

Code:

cb = Callbacks()

l = []

def func(a): print(a)

cb.add_callback(functools.partial(func, 1))
cb.add_callback(functools.partial(func, 2))

cb()

Output:

1
2

Code:

cb = Callbacks()

l = []

async def func(a): print(a)

cb.add_callback(functools.partial(func, 1))
cb.add_callback(functools.partial(func, 2))

loop.run_until_complete(cb.acall())

Output:

1
2

CoroQueue

async def a(i):
    await asyncio.sleep(1)
    print(i)

async def b(i):
    print(i)

q = CoroQueue(loop)

q.schedule_run_forever()

q.put_nowait(a, 1)
q.put_nowait(b, 2)

loop.run_until_complete(q.join())

loop.run_until_complete(q.close())
1
2

Indices and tables