INNER CODE UNIT · Python
_build_dependency_only_callable
JasperSui/fastapi-injectable · src/fastapi_injectable/main.py:99
def _build_dependency_only_callable(
func: Callable[..., Any],
) -> Callable[..., Any]:
"""Create a callable with only Depends() parameters in its signature.
This prevents FastAPI's get_dependant from trying to parse non-dependency
parameters (e.g. ``self``, Celery's bound ``task``) as query/body params,
which would fail for types that are not valid Pydantic fields.
"""
sig = inspect.signature(func)
dep_params = [p for p in sig.parameters.values() if _has_depends(p)]
# If all parameters are dependencies, no filtering needed
if len(dep_params) == len(sig.parameters):
return func
def stub() -> None: ... # pragma: no cover