Releases: modern-python/that-depends
Releases · modern-python/that-depends
4.0.0
4.0.0 Release
For information about all the new features and changes, please refer to the documentation.
If migrating, please refer to the migration guide.
What's Changed
- Reworked injection internals for significantly better performance and typing compliance. The bundled benchmark improved from
~9sto~4sat10^6iterations versus3.9.2. - Collection providers now return read-only abstractions:
providers.List(...)resolves to a tuple-backedSequence, andproviders.Dict(...)resolves to amappingproxy-backedMapping. - Tightened context-resource and scope handling, including cleaner sync and async context entry for containers and providers, stricter scope checks, and better
Nonehandling across provider resolution paths. BaseContainer.context()now preserves the wrapped callable signature.- The package now ships with its own
that-dependsAgent skill. - Now type checked by both
mypyandpyrefly
Pull Requests
- v4 by @xelandernt in #210
- Skills by @xelandernt in #211
Full Changelog: 3.9.2...4.0.0
4.0.0-alpha.2
Full Changelog: 4.0.0-alpha.1...4.0.0-alpha.2
4.0.0-alpha.1
4.0.0-alpha
3.9.2
3.9.1
What's Changed
- docs: Added llms.txt by @xelandernt in #206
- fix: Injection warnings are now more useful when incorrectly wrapping functions with
@inject
Full Changelog: 3.9.0...3.9.1
3.9.0
What's Changed
- feat: Added support for faststream >= 0.6.0 by @xelandernt in #205
Full Changelog: 3.8.0...3.9.0
3.8.0
What's Changed
- build: updated workflow actions versions. by @xelandernt in #200
- Experimental Lazy provider by @xelandernt in #204
- Temporarily fixed
faststream<0.6.0
Full Changelog: 3.7.0...3.8.0
3.7.0
What's Changed
- fix: raise UserWarning when trying to wrap generators with container_context by @xelandernt in #198
- feat: added python 3.14 support. by @xelandernt in #199
Full Changelog: 3.6.0...3.7.0
3.6.0
What's Changed
- Allow sync in async factories by @xelandernt in #197
This change enables the following functionality:
class MyClass: ...
class Container(BaseContainer):
p = providers.AsyncFactory(MyClass)
await Container.p.resolve() # will resolve MyClass asynchronously, allowing for async dependencies. Full Changelog: 3.5.1...3.6.0