async_patterns¶
async_patterns¶
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