From 059f78b27ccecabc5f8cf68f181e3253002c8f34 Mon Sep 17 00:00:00 2001 From: AndrianEquestrian <88708533+AndrianEquestrian@users.noreply.github.com> Date: Thu, 23 Oct 2025 16:33:53 +0300 Subject: [PATCH] Fix FastDepends v3 compatibility (#933) --- src/dependency_injector/wiring.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/dependency_injector/wiring.py b/src/dependency_injector/wiring.py index 211fdcde..ceeee74e 100644 --- a/src/dependency_injector/wiring.py +++ b/src/dependency_injector/wiring.py @@ -76,8 +76,18 @@ with suppress(ImportError): MARKER_EXTRACTORS.append(extract_marker_from_fastapi) -with suppress(ImportError): - from fast_depends.dependencies import Depends as FastDepends +with suppress(ImportError): # fast_depends >=3.0.0 + from fast_depends.dependencies.model import Dependant as FastDependant # type: ignore[attr-defined] + + def extract_marker_from_dependant_fast_depends(param: Any) -> Any: + if isinstance(param, FastDependant): + return param.dependency + return None + + MARKER_EXTRACTORS.append(extract_marker_from_dependant_fast_depends) + +with suppress(ImportError): # fast_depends <3.0.0 + from fast_depends.dependencies import Depends as FastDepends # type: ignore[attr-defined] def extract_marker_from_fast_depends(param: Any) -> Any: if isinstance(param, FastDepends):