Проще, чем фреймворк, это @autowired
декоратор .
Этот декоратор обеспечивает чистую инъекцию зависимостей и поддержку отложенной инициализации.
Получается такой код:
def __init__(self, *, model: Model = None, service: Service = None):
if model is None:
model = Model()
if service is None:
service = Service()
self.model = model
self.service = service
# actual code
в это:
@autowired
def __init__(self, *, model: Model, service: Service):
self.model = model
self.service = service
# actual code
Это не фреймворк, так что вам нет нужды в настройке и принудительных рабочих процессах, хотя он не обеспечивает манипулирование контекстами внедрения.
Раскрытие информации: я ведущий проекта.