Features * Add a `current_taskgroup` context-variable to the taskgroup module (only available for Python 3.7 or later)
Fixes * Fix missing auto-import of `taskgroup` module exports in the `aiotools` root package.
1.0.0
------------------
Features * Adopt an implementation of the taskgroup API as `aiotools.taskgroup` from [EdgeDB](https://github.com/edgedb/edgedb-python/) ([#18](https://github.com/achimnol/aiotools/issues/18)) * Add `timer.VirtualClock` which provides a virtual clock that makes a block of asyncio codes using `asyncio.sleep()` to complete instantly and deterministically ([19](https://github.com/achimnol/aiotools/issues/19))
Miscellaneous * Adopt towncrier for changelog management ([15](https://github.com/achimnol/aiotools/issues/15)) * Migrate to GitHub Actions for CI ([19](https://github.com/achimnol/aiotools/issues/19))
0.9.1
------------------
* A maintenance release to fix up the ``defer`` module exports in the ``aiotools`` namespace.
0.9.0
------------------
* **defer:** A new module that emulates Golang's ``defer()`` API with asyncio awareness.
0.8.5
------------------
* **server:** Rewrite internals of the worker main functions to use native `async with` instead of manually unrolling `__aenter__()` and `__aexit__()` dunder methods, to keep the code simple and avoid potential bugs.
0.8.4
------------------
* Python 3.8 is now officially supported. * **server:** Fix errors when `multiprocessing.set_start_method("spawn")` is used. - NOTE: This is now the default for macOS since Python 3.8. - KNOWN ISSUE: [12](https://github.com/achimnol/aiotools/issues/12) * Remove some packaging hacks in `__init__.py` and let setuptools read the version from a separate `aiotools/VERSION` text file.