Skip to content

A decorator to asynchronously execute synchronous functions

License

Notifications You must be signed in to change notification settings

muflone/awaitable

Repository files navigation

Awaitable

Travis CI Build Status CircleCI Build Status PyPI - Version PyPI - Python Version

Description: A decorator to asynchronously execute synchronous functions

Copyright: 2022 Fabio Castelli (Muflone) muflone@muflone.com

License: GPL-3+

Source code: https://github.com/muflone/awaitable

Documentation: http://www.muflone.com/awaitable/

Description

Awaitable is a small decorator to asynchronously execute synchronous functions.

System Requirements

  • Python 3.x

Usage

You can decorate a synchronous routine using @awaitable.awaitable to make it awaitable and awaitable.AsyncioGather to process some tasks using asyncio:

import awaitable

@awaitable.awaitable
def do_something():
    # process a single task
    return

async def process(count):
    # execute some workers
    tasks = awaitable.AsyncioGather()
    for i in range(count):
        tasks.add(do_something())
    await tasks.run()

awaitable.run_awaitable(func=process, count=10)

Please see the samples folders for some others usage examples.