@@ -66,6 +66,12 @@ def get_origin(tp):
66
66
werkzeug = None
67
67
68
68
69
+ try :
70
+ import fast_depends .dependencies
71
+ except ImportError :
72
+ fast_depends = None
73
+
74
+
69
75
from . import providers
70
76
71
77
__all__ = (
@@ -583,6 +589,8 @@ def _unpatch_attribute(patched: PatchedAttribute) -> None:
583
589
584
590
585
591
def _extract_marker (parameter : inspect .Parameter ) -> Optional ["_Marker" ]:
592
+ depends_available = False
593
+
586
594
if get_origin (parameter .annotation ) is Annotated :
587
595
args = get_args (parameter .annotation )
588
596
if len (args ) > 1 :
@@ -592,10 +600,13 @@ def _extract_marker(parameter: inspect.Parameter) -> Optional["_Marker"]:
592
600
else :
593
601
marker = parameter .default
594
602
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 :
596
607
return None
597
608
598
- if _is_fastapi_depends ( marker ) :
609
+ if depends_available :
599
610
marker = marker .dependency
600
611
601
612
if not isinstance (marker , _Marker ):
@@ -721,6 +732,14 @@ def _is_fastapi_depends(param: Any) -> bool:
721
732
return fastapi and isinstance (param , fastapi .params .Depends )
722
733
723
734
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
+
724
743
def _is_patched (fn ) -> bool :
725
744
return _patched_registry .has_callable (fn )
726
745
0 commit comments