NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #391 most downloaded on PyPI
Async dependency injection for Python functions
Last release 1 months ago
10 Aug 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 8 of 8 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
8 releases · first in 2026
One column per month.
Add CallArgument and Depends bindings on a call-scoped frame by @chrisguidry in https://github.com/chrisguidry/uncalled-for/pull/12
Full Changelog: https://github.com/chrisguidry/uncalled-for/compare/0.3.2...0.4.0
Full Changelog: 0.3.2...0.4.0
Accept bare Dependency subclasses as Annotated metadata by @chrisguidry in https://github.com/chrisguidry/uncalled-for/pull/9
Full Changelog: https://github.com/chrisguidry/uncalled-for/compare/0.3.1...0.3.2
Full Changelog: 0.3.1...0.3.2
After spending more time with class dependencies, it was the wrong design. I'm pulling it for now and reconsidering.
After spending more time with class dependencies, it was the wrong design. I'm pulling it for now and reconsidering.
Full Changelog: https://github.com/chrisguidry/uncalled-for/compare/0.3.0...0.3.1
After spending more time with class dependencies, it was the wrong design. I'm pulling it for now and reconsidering.
Full Changelog: 0.3.0...0.3.1
Dependency classes can now declare their own dependencies as class attributes, resolved automatically before __aenter__ runs:
Dependency classes can now declare their own dependencies as class attributes, resolved automatically before __aenter__ runs:
class UserRepo(Dependency[UserRepo]):
pool: Pool = Depends(get_pool)
async def __aenter__(self) -> UserRepo:
return UserRepo(self.pool) # self.pool already resolved
Works with Depends(), Shared(), and bare Dependency instances. Dependencies on base classes are resolved for concrete children.
Full Changelog: https://github.com/chrisguidry/uncalled-for/compare/0.2.0...0.3.0
Dependency classes can now declare their own dependencies as class attributes, resolved automatically before __aenter__ runs:
class UserRepo(Dependency[UserRepo]):
pool: Pool = Depends(get_pool)
async def __aenter__(self) -> UserRepo:
return UserRepo(self.pool) # self.pool already resolvedWorks with Depends(), Shared(), and bare Dependency instances. Dependencies on base classes are resolved for concrete children.
Full Changelog: 0.2.0...0.3.0
Support dependencies as Annotated type-hint metadata by @chrisguidry in https://github.com/chrisguidry/uncalled-for/pull/3
Full Changelog: https://github.com/chrisguidry/uncalled-for/compare/0.1.2...0.2.0
Full Changelog: 0.1.2...0.2.0
Report concrete type for duplicate single dependencies by @chrisguidry in https://github.com/chrisguidry/uncalled-for/pull/2
Full Changelog: https://github.com/chrisguidry/uncalled-for/compare/0.1.1...0.1.2
Full Changelog: 0.1.1...0.1.2
Use full __aexit__ signature on Dependency by @chrisguidry in https://github.com/chrisguidry/uncalled-for/pull/1
Full Changelog: https://github.com/chrisguidry/uncalled-for/compare/0.1.0...0.1.1
Full Changelog: 0.1.0...0.1.1
Full Changelog: https://github.com/chrisguidry/uncalled-for/commits/0.1.0
Full Changelog: https://github.com/chrisguidry/uncalled-for/commits/0.1.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →