Changelog#

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

This project uses Semantic Versioning since v1.3.1.

[1.3]#

[1.3.7] - 2026-11-10; latest#

Updated ty to 0.0.100.

[1.3.6] - 2026-11-07#

Some miscellaneous updates.

[1.3.5] - 2026-11-06#

Updated tools and refactored toolchain configs; reformatted and refactored some code.

[1.3.4] - 2026-10-20#

Updated linters and type checkers.

[1.3.3] - 2026-10-18#

Documentation corrections.

[1.3.2] - 2026-10-14; skipped#

Upgraded to Python 3.15.0.

[1.3.1] - 2026-10-12#

Build process refactors; documentation fixes; Makefile fixes.

[1.3.0] - 2026-09-22#

Changed all extras to dependency groups.

[1.2]#

[1.2.4] - 2026-09-06#

Upgraded to Python 3.15.0rc2.

[1.2.3] - 2026-08-31#

Refactors.

[1.2.2] - 2026-08-29#

Again, some workflow changes.

[1.2.1] - 2026-08-25#

Various workflows.

[1.2.0] - 2026-08-19#

Started using zizmor in CI.

[1.1]#

[1.1.4] - 2026-08-18#

Pinned GitHub workflow action usages by hashes; some workflow enhancements.

[1.1.3] - 2026-08-13#

Switched from detect-secrets to betterleaks; added asyncutils bug subcommand.

[1.1.2] - 2026-08-03#

Some bugfixes and moves around submodules.

[1.0]#

Breaking changes:

  • Declared end of life for all beta versions.

  • Included all the symbols listed in the previous section in the public API.

[1.0.1] - 2026-06-30#

Implemented util.evaluate_and_return, iters.wrapf, and exceptions.ignore_warnings; added reject_cb and await_cb parameters to iters.aguessmax and iters.aguessmin; added yield_sentinel keyword argument to util.aiter_from_f.

[1.0.0] - 2026-06-26; first stable version#

Added some tests; enabled some pydocstyle lint rules; refactored internal modules to avoid importing asyncio to show the help message and library version; moved warnings badge generation to slower test run; switched back to codecov due to pricing; integrated spelling checker.

[0.9]#

Breaking changes:

  • Declared end of life for all alpha versions.

  • Changed version shelving and unshelving schema.

[0.9.16] - 2026-06-22#

Greatly improved futures and properties functionality.

[0.9.15] - 2026-06-17#

Committed uv.lock to version control; replaced AsyncGenerator with AsyncGeneratorType and Generator with GeneratorType where appropriate.

[0.9.14] - 2026-06-13#

Refactored base.EventLoop; improved submodule logging and __dir__ method handling.

[0.9.13] - 2026-06-12#

Reorganized the project structure; added a test; clarified documentation.

[0.9.12] - 2026-06-10#

Fixed all warnings in Sphinx nitpicky builds; declared free-threaded support as standard; unpinned the exact beta of Python 3.15.

[0.9.11] - 2026-06-04#

Upgraded to Python 3.15.0b2; added experimental GraalPy and free-threaded support.

[0.9.10] - 2026-05-29#

Integrated CodeQL fully.

[0.9.9] - 2026-05-26#

Added more tests and more badges to the readme; removed codecov upload step superseded by GitHub Code Quality.

[0.9.8] - 2026-05-23#

Eliminated instances of bare Any used to annotate arguments.

[0.9.7] - 2026-05-21#

Added locksmiths submodule.

[0.9.6] - 2026-05-19#

Re-committed .markdownlint.json to version control; documentation nears completion; used GitHub Actions for page deployment.

[0.9.5] - 2026-05-17#

Some bugfixes; began deployment to GitHub Pages.

[0.9.4] - 2026-05-15#

Fixed workflows once more and integrated uv more fully; migrated from mypy to ty, removing stubtest step.

[0.9.3] - 2026-05-11#

Added some tests; changed symbolic links to a copy step in the Read the Docs build, which is more reliable; fixed codecov trigger; added sphinx-copybutton as an optional dependency.

[0.9.2] - 2026-05-07#

Created symbolic links in docs directory linking to root .md files; fixed some bugs; respected some more environment variables and documented this behaviour; completed benchmarks; added myst_parser as an optional dependency; bumped some dependencies; added some examples.

[0.9.1] - 2026-05-01#

Declared full support for python[ -m] asyncutils an entry point; patched function, method and class method signatures where appropriate; added -P / --pdb option; switched to furo theme.

[0.9.0] - 2026-04-27#

Added some iteration, functional programming and context management utilities.

[0.8]#

[0.8.28] - 2026-04-24#

Rewrote submodules loading mechanism; removed fragile relative imports; compressed asyncio and sibling module imports to avoid overhead.

[0.8.27] - 2026-04-21#

Added more tests and fixed stubtest errors; abolished slow markdownlint step in pre-commit; various API additions.

[0.8.26] - 2026-04-18#

Squashed many bugs and stub inaccuracies; integrated stubtest; simplified workflows; added more contextual constants.

[0.8.25] - 2026-04-14#

Created issue templates.

[0.8.24] - 2026-04-10#

Created AI_USAGE_POLICY.md.

[0.8.23] - 2026-04-09#

Integrated pre-commit CI.

[0.8.22] - 2026-04-05#

Created the audit events table.

[0.8.21] - 2026-04-01#

Organized badges into table; started using mypy.

[0.8.20] - 2026-03-29#

Started hosting documentation on Read the Docs.

[0.8.19] - 2026-03-27#

Set up docs directory.

[0.8.17] - 2026-03-24#

Started using detect-secrets.

[0.8.16] - 2026-03-22#

Started using ruff; created py.typed.

[0.8.14] - 2026-03-21#

Set up tests directory; started using pytest.

[0.8.9] - 2026-03-14#

Created Dockerfile.

[0.8.8] - 2026-03-12#

Created .editorconfig and .pre-commit-config.yaml.

[0.8.6] - 2026-03-10#

Created ROADMAP.md.

[0.8.4] - 2026-03-09#

Created SUPPORT.md and CHANGELOG.md.

[0.8.2] - 2026-03-07#

Created CODE_OF_CONDUCT.md and CONTRIBUTING.md.

[0.8.1] - 2026-03-06#

Created pyproject.toml and SECURITY.md.

[0.8.0] - 2026-03-06#

Set up version control; added version submodule.

[0.7] - 2026-02-09#

Began migration of implementation details into _internal subpackage; fixed initialization logic and command line.

[0.6] - 2026-01#

Completed migration from inline annotations to separated stubs; perfected base.EventLoop and lazy loading; added console and cli submodules.

[0.5] - 2025-12#

Added classes such as altlocks.CircuitBreaker and channels.EventBus; implemented preliminary lazy loading system; created exceptions submodule; began separation of type annotations from .py into .pyi.

[0.4] - 2025-10#

Added more complicated patterns and procedures such as channels.Observable and signals.wait_for_signal.

[0.3] - 2025-08#

Basically completed refactoring; added more object-oriented patterns such as altlocks.DynamicThrottle and misc.CacheWithBackgroundRefresh.

[0.2] - 2025-07#

Began reorganizing single file containing all functions into submodules.

[0.1] - 2025-06#

Added basic but untested features such as iters.tee, iters.merge, base.to_async, base.iter_to_agen and util.sync_await.