FastDepends example¶
This example demonstrates how to use Dependency Injector
with FastDepends, a lightweight dependency injection framework inspired by FastAPI’s dependency system, but without the web framework components.
Basic Usage¶
The integration between FastDepends and Dependency Injector is straightforward. Simply use Dependency Injector’s Provide
marker within FastDepends’ Depends
function:
import sys
from dependency_injector import containers, providers
from dependency_injector.wiring import inject, Provide
from fast_depends import Depends
class CoefficientService:
@staticmethod
def get_coefficient() -> float:
return 1.2
class Container(containers.DeclarativeContainer):
service = providers.Factory(CoefficientService)
@inject
def apply_coefficient(
a: int,
coefficient_provider: CoefficientService = Depends(Provide[Container.service]),
) -> float:
return a * coefficient_provider.get_coefficient()
container = Container()
container.wire(modules=[sys.modules[__name__]])
apply_coefficient(100) == 120.0