diff --git a/src/dependency_injector/wiring.py b/src/dependency_injector/wiring.py index 211fdcde..98173570 100644 --- a/src/dependency_injector/wiring.py +++ b/src/dependency_injector/wiring.py @@ -77,6 +77,7 @@ def extract_marker_from_fastapi(param: Any) -> Any: MARKER_EXTRACTORS.append(extract_marker_from_fastapi) with suppress(ImportError): + # fast-depends v2.x from fast_depends.dependencies import Depends as FastDepends def extract_marker_from_fast_depends(param: Any) -> Any: @@ -86,6 +87,17 @@ def extract_marker_from_fast_depends(param: Any) -> Any: MARKER_EXTRACTORS.append(extract_marker_from_fast_depends) +with suppress(ImportError): + # fast-depends v3.x (Depends() returns Dependant instances) + from fast_depends.dependencies.model import Dependant as FastDependant + + def extract_marker_from_fast_dependant(param: Any) -> Any: + if isinstance(param, FastDependant): + return param.dependency + return None + + MARKER_EXTRACTORS.append(extract_marker_from_fast_dependant) + with suppress(ImportError): from starlette.requests import Request as StarletteRequest