- improve cyclic dependency detection
- clear container cache on exit and aexit
- telegram: support using inject decorator on
BaseHandler.handle
- add grpcio integration
- move return type resolving into ReturnTypeSource
- raise error if return type of
functools.partialfunction is a generic and no explicit interface was provided
- testing: providers dependent on overridden provider not being cleaned up
- TestContainer.override not restoring cache when overriding dependencies with an interface
- TestContainer.override created cache generated during override
- optimize TestContainer.override cleanup
- add support for injecting into aiogram middleware
- add
context_from_scopehelper function to retrieve context from litestar scope
- assume object's type as interface when it is a NewType
- move generic alias check to ObjectProviderExtension
- fasttapi: move
RequestandBackgroundTasksproviders registration intoFastAPIExtension
- exclude functools.partial args from dependencies
- fix resolving Object provider types if they have interface
- bind Object node type to provided interface
- add OnResolveContextExtension
- allow sort_nodes more attempts to resolve postponed nodes
- OnResolveContextExtension should not be included if compiled function is not async
- raise human-readable error if dependency requires scope that isn't yet available/active
- add compiled function source into
linecache.cacheso it's shown in the traceback
- generate valid variable name with unions
- TypeError when applying
injectdecorator
- Add dependency validation
- inject: fix issue with decorating functions that have **kwargs parameters in them
- add DRF support
- add sync django integration
- correctly name FromContext nodes
- add support for dependencies that use
functools.partial - fastapi: add websocket support
- add ability to request context dependencies from current scope, automatically add Context/SyncContext to current scope
- add aiogram integration
- transient providers
- add TestContainer class
- support injecting dependency collections (iterables)
- support using unbound generics
- acquire context lock when resolving singletons
- add fastapi and strawberry-graphql integrations
- python3.10 compatibility
- clear root context cache before and after override
- correctly resolve interfaces
- strawberry-graphql: except TypeError when checking if argument is a subclass of strawberry.Info
- import Inject and Injected in aioinject.init
- preserve lifespan order in async container
- use topological sorter to detect cycles between dependency nodes
- remove dead code
- wrap resolved nodes into a tuple instead of a list
- rename
ProviderInfo.actual_typetotype - call
self.rootinstead ofself._rootinContainer.__(a)enter__ - move compilation related code into package
- remove empty tests
- move TypeVars to aioinject._types
- fix provider extension naming
- correctly resolve type context types when lazy annotations are used
- add ability to use providers from context
- update compatibility check for Python version greater than 3.11
- generics: try using Generic[args] to make generics
- enhance Python 3.11 compatibility checks and update test decorators
- improve compatibility handling and clean up generics code
- container: handle registering providers with unhashable implementations
- add iterable providers
- test_partially_resolved_generic
- update get_typevars to return a list of TypeVars and enhance nested generic tests
- enhance generic type handling and add tests for nested concrete generics
- correct test to ->
test_nested_unresolved_generic - update resolved type handling in InjectionContext and add uv.lock for dependency management
- use is_iterable_generic_collection
- use Provider.hash in stores
- avoid closing context multiple times
- litestar: exceptions weren't propagated to contextmanager dependencies
- litestar: make after_exception function private
- migrate to uv
- Add
Injected[T]annotation as a shorthand forAnnotated[T, Inject]by @nrbnlulu
- Add test for
strawberry.subscriptionby @nrbnlulu