Dependency injection library
Project description
Dependency injection enables us to write better code, regardless of doing so manually or with the help of some library. It helps specially to keep our code inside the Law of Demeter, by programming against a known interface without having to worry about how a concrete implementation is composed.
Python offers decorators, metaclasses and context managers (among other functionalities) as a mean to implement user defined control structures. They work great to encapsulate patterns, hence complexity, while keeping a sane separation of concerns.