Skip to content

apply_types

fast_depends.use.inject #

inject(
    func: Callable[P, T] = ...,
    *,
    cast: bool = True,
    cast_result: bool = True,
    extra_dependencies: Sequence[Dependant] = (),
    dependency_provider: Optional[Provider] = None,
    wrap_model: Callable[
        [CallModel], CallModel
    ] = lambda x: x,
    serializer_cls: Optional[
        SerializerProto
    ] = SerializerCls,
    **call_extra: Any,
) -> Callable[P, T]
inject(
    func: None = None,
    *,
    cast: bool = True,
    cast_result: bool = True,
    extra_dependencies: Sequence[Dependant] = (),
    dependency_provider: Optional[Provider] = None,
    wrap_model: Callable[
        [CallModel], CallModel
    ] = lambda x: x,
    serializer_cls: Optional[
        SerializerProto
    ] = SerializerCls,
    **call_extra: Any,
) -> InjectWrapper[..., Any]
inject(
    func=None,
    *,
    cast=True,
    cast_result=True,
    extra_dependencies=(),
    dependency_provider=None,
    wrap_model=lambda x: x,
    serializer_cls=SerializerCls,
    **call_extra,
)
Source code in fast_depends/use.py
def inject(
    func: Callable[P, T] | None = None,
    *,
    cast: bool = True,
    cast_result: bool = True,
    extra_dependencies: Sequence[Dependant] = (),
    dependency_provider: Optional["Provider"] = None,
    wrap_model: Callable[["CallModel"], "CallModel"] = lambda x: x,
    serializer_cls: Optional["SerializerProto"] = SerializerCls,
    **call_extra: Any,
) -> Union[Callable[P, T], "InjectWrapper[P, T]"]:
    if dependency_provider is None:
        dependency_provider = global_provider

    if not cast:
        serializer_cls = None

    decorator: InjectWrapper[P, T] = _wrap_inject(
        dependency_provider=dependency_provider,
        wrap_model=wrap_model,
        extra_dependencies=extra_dependencies,
        serializer_cls=serializer_cls,
        cast_result=cast_result,
        **call_extra,
    )

    if func is None:
        return decorator
    return decorator(func)