Skip to content

Commit 2fe4c39

Browse files
Add support for Fast Stream Depends
1 parent 8460465 commit 2fe4c39

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

src/dependency_injector/wiring.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ def get_origin(tp):
6666
werkzeug = None
6767

6868

69+
try:
70+
import fast_depends.dependencies
71+
except ImportError:
72+
fast_depends = None
73+
74+
6975
from . import providers
7076

7177
__all__ = (
@@ -583,6 +589,8 @@ def _unpatch_attribute(patched: PatchedAttribute) -> None:
583589

584590

585591
def _extract_marker(parameter: inspect.Parameter) -> Optional["_Marker"]:
592+
depends_available = False
593+
586594
if get_origin(parameter.annotation) is Annotated:
587595
args = get_args(parameter.annotation)
588596
if len(args) > 1:
@@ -592,10 +600,13 @@ def _extract_marker(parameter: inspect.Parameter) -> Optional["_Marker"]:
592600
else:
593601
marker = parameter.default
594602

595-
if not isinstance(marker, _Marker) and not _is_fastapi_depends(marker):
603+
if _is_fastapi_depends(marker) or _is_fast_stream_depends(marker):
604+
depends_available = True
605+
606+
if not isinstance(marker, _Marker) and not depends_available:
596607
return None
597608

598-
if _is_fastapi_depends(marker):
609+
if depends_available:
599610
marker = marker.dependency
600611

601612
if not isinstance(marker, _Marker):
@@ -721,6 +732,14 @@ def _is_fastapi_depends(param: Any) -> bool:
721732
return fastapi and isinstance(param, fastapi.params.Depends)
722733

723734

735+
if fast_depends:
736+
def _is_fast_stream_depends(param: Any) -> bool:
737+
return isinstance(param, fast_depends.dependencies.Depends)
738+
else:
739+
def _is_fast_stream_depends(param: Any) -> bool:
740+
return False
741+
742+
724743
def _is_patched(fn) -> bool:
725744
return _patched_registry.has_callable(fn)
726745

0 commit comments

Comments
 (0)