Changelog

All notable changes to this project will be documented in this file.

This project adheres to Calendar Versioning.

The first number of the version is the year. The second number is incremented with each release, starting at 1 for each year. The third number is for emergencies when we need to start branches for older releases.

26.1.0 (2026-03-31)

  • TaskGroups and quattro.gather() now support concurrency_limit to limit the number of tasks that run in parallel. (#29)

  • defer() now also supports enter_context for sync context managers. (#23)

  • defer() now properly preserves the coroutine function signature. (#23)

  • Deferrer now properly works on methods. (#33)

  • Add support for Python 3.14. (#27)

  • Drop support for Python 3.9 and introduce pytest-typing-based type tests. (#32)

25.2.0 (2025-03-06)

  • Introduce Deferrer and defer(). (#18)

  • quattro documentation is now handled by Sphinx and Read the Docs. (#19)

25.1.1 (2025-02-24)

  • Change a sys.version_info guard to work better with Pyright. (#17)

25.1.0 (2025-02-21)

24.1.0 (2024-05-01)

23.1.0 (2023-11-29)

22.2.0 (2022-12-27)

  • More robust nested cancellation on 3.11.

  • Better typing support for fail_after() and fail_at().

  • Improve effective deadline handling for pre-cancelled scopes.

  • TaskGroups now support custom ContextVar contexts when creating tasks, just like the standard library implementation.

22.1.0 (2022-12-19)

  • Restore TaskGroup copyright notice.

  • TaskGroups now raise ExceptionGroups (using the PyPI backport when necessary) on child errors.

  • Add support for Python 3.11, drop 3.8.

  • TaskGroups no longer have a name and the repr is slightly different, to harmonize with the Python 3.11 standard library implementation.

  • TaskGroups no longer swallow child exceptions when aborting, to harmonize with the Python 3.11 standard library implementation.

  • Switch to CalVer.

0.3.0 (2022-01-08)

  • Add py.typed to enable typing information.

  • Flesh out type annotations for TaskGroups.

0.2.0 (2021-12-27)

  • Add quattro.current_effective_deadline().

0.1.0 (2021-12-08)

  • Initial release, containing task groups and cancellation scopes.