All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Add support for lifespan state. (Pull #59)
- Drop support for Python 3.6. (Pull #55)
- Add official support for Python 3.11. (Pull #55)
- Add official support for Python 3.9 and 3.10. (Pull #46 - Thanks @euri10)
- Ensure compatibility with mypy 0.990+, which made
no_implicit_optionalthe default. (Pull #53 - Thanks @AllSeeingEyeTolledEweSew)
- Update development status to
5 - Production/Stable. (Pull #32)
- Drop
LifespanandLifespanMiddleware. Please use Starlette's built-in lifespan capabilities instead. (Pull #27)
- Use
sniffiofor auto-detecting the async environment. (Pull #28) - Enforce 100% test coverage on CI. (Pull #29)
- Enforce importing from the top-level package by switching to private internal modules. (Pull #26)
- Move
Lifespanto thelifespanmodule. (Pull #21) - Refactor
LifespanManagerto drop dependency onasynccontextmanageron 3.6. (Pull #20)
- Enter Beta development status.
- Remove
curiosupport. (Pull #18)
- Ship binary distributions (wheels) alongside source distributions.
- Use custom concurrency backends instead of
anyiofor asyncio and trio support. (Pull #18)
- Ensure
py.typedis bundled with the package so that type checkers can detect type annotations. (Pull #16)
- Improve error handling in
LifespanManager(Pull #11):- Exceptions raised in the context manager body or during shutdown are now properly propagated.
- Unsupported lifespan is now also detected when the app calls
send()before calling having calledreceive()at least once.
- Enter Alpha development status.
- Add configurable timeouts to
LifespanManager. (Pull #10)
- Add
LifespanManagerfor sending lifespan events into an ASGI app. (Pull #5)
- Add
LifespanMiddleware, an ASGI middleware to add lifespan support to an ASGI app. (Pull #9)
- Add
Lifespan, an ASGI app implementing the lifespan protocol with event handler registration support. (Pull #7)
- Installation from PyPI used to fail due to missing
MANIFEST.in.
- Empty package.