Pinject
A pythonic dependency injection library
...The library leans on Python’s introspection to minimize boilerplate, making it natural to adopt in codebases that already rely on type hints or keyword arguments. Because bindings are just Python functions and classes, refactoring remains straightforward and the DI graph is easy to reason about. Pinject is particularly useful for medium-to-large services where configuration, logging, data clients, and business logic need clean separation without resorting to manual plumbing.