diff --git a/src/dependency_injector/wiring.py b/src/dependency_injector/wiring.py index dd6635f4..e8503133 100644 --- a/src/dependency_injector/wiring.py +++ b/src/dependency_injector/wiring.py @@ -102,6 +102,23 @@ if TYPE_CHECKING: else: Container = Any +def _is_fastapi_depends(param: Any) -> bool: + return fastapi and isinstance(param, fastapi.params.Depends) + + +if fast_depends: + def _is_fast_stream_depends(param: Any) -> bool: + return isinstance(param, fast_depends.dependencies.Depends) +else: + def _is_fast_stream_depends(param: Any) -> bool: + return False + + +_DEPENDS_CHECKERS = ( + _is_fastapi_depends, + _is_fast_stream_depends, +) + class PatchedRegistry: @@ -600,7 +617,7 @@ def _extract_marker(parameter: inspect.Parameter) -> Optional["_Marker"]: else: marker = parameter.default - if _is_fastapi_depends(marker) or _is_fast_stream_depends(marker): + if any(depends_checker(marker) for depends_checker in _DEPENDS_CHECKERS): depends_available = True if not isinstance(marker, _Marker) and not depends_available: @@ -728,18 +745,6 @@ def _get_patched( return patched -def _is_fastapi_depends(param: Any) -> bool: - return fastapi and isinstance(param, fastapi.params.Depends) - - -if fast_depends: - def _is_fast_stream_depends(param: Any) -> bool: - return isinstance(param, fast_depends.dependencies.Depends) -else: - def _is_fast_stream_depends(param: Any) -> bool: - return False - - def _is_patched(fn) -> bool: return _patched_registry.has_callable(fn)