Oven logo

Oven

Published

backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout

pip install taskgroup

Package Downloads

Weekly DownloadsMonthly Downloads

Project URLs

Requires Python

PyPI - Version

taskgroup

a backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout

background

This is a backport of the TaskGroup, Runner and timeout code from Python 3.12a1 to Python 3.9, Python 3.10 and Python 3.11.

operation

This project works by temporarily swapping the current task of a coroutine to a subclass of asyncio.Task with uncancel and context setting support. The advantage of this approach means that most of the operation of asyncio.Task will continue to be c-accelerated.

example

if sys.python_version >= (3, 11):
    from asyncio import run, TaskGroup, timeout
else:
    from taskgroup import run, TaskGroup, timeout

async def main():
    async with TaskGroup() as group:
        group.create_task(task1())
        group.create_task(task2())

run(main())

changelog

0.2.1

What's Changed

Full Changelog: https://github.com/graingert/taskgroup/compare/0.2.0...0.2.1

0.2.0

What's Changed

Full Changelog: https://github.com/graingert/taskgroup/compare/0.1.1...0.2.0

0.1.1

What's Changed

New Contributors

Full Changelog: https://github.com/graingert/taskgroup/compare/0.1.0...0.1.1

0.1.0

What's Changed

Full Changelog: https://github.com/graingert/taskgroup/compare/0.0.0a6...0.1.0

0.0.0a6

What's Changed

Full Changelog: https://github.com/graingert/taskgroup/compare/0.0.0a5...0.0.0a6

0.0.0a5

What's Changed

New Contributors

Full Changelog: https://github.com/graingert/taskgroup/commits/0.0.0a5