From 08d47daa906dfae8d64d6fc654a3b481ab68693d Mon Sep 17 00:00:00 2001 From: Caspar Broekhuizen Date: Tue, 9 Sep 2025 14:03:14 -0700 Subject: [PATCH] fix(langgraph): split task function overloads to resolve mypy incompatible type error --- libs/langgraph/langgraph/func/__init__.py | 24 ++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/libs/langgraph/langgraph/func/__init__.py b/libs/langgraph/langgraph/func/__init__.py index fd3245791..e5ae577ec 100644 --- a/libs/langgraph/langgraph/func/__init__.py +++ b/libs/langgraph/langgraph/func/__init__.py @@ -100,16 +100,25 @@ def task( retry_policy: RetryPolicy | Sequence[RetryPolicy] | None = None, cache_policy: CachePolicy[Callable[P, str | bytes]] | None = None, **kwargs: Unpack[DeprecatedKwargs], -) -> Callable[ - [Callable[P, Awaitable[T]] | Callable[P, T]], - _TaskFunction[P, T], -]: ... +) -> Callable[[Callable[P, T]], _TaskFunction[P, T]]: ... @overload def task( - __func_or_none__: Callable[P, Awaitable[T]] | Callable[P, T], -) -> _TaskFunction[P, T]: ... + *, + name: str | None = None, + retry_policy: RetryPolicy | Sequence[RetryPolicy] | None = None, + cache_policy: CachePolicy[Callable[P, str | bytes]] | None = None, + **kwargs: Unpack[DeprecatedKwargs], +) -> Callable[[Callable[P, Awaitable[T]]], _TaskFunction[P, T]]: ... + + +@overload +def task(__func_or_none__: Callable[P, T]) -> _TaskFunction[P, T]: ... + + +@overload +def task(__func_or_none__: Callable[P, Awaitable[T]]) -> _TaskFunction[P, T]: ... def task( @@ -120,7 +129,8 @@ def task( cache_policy: CachePolicy[Callable[P, str | bytes]] | None = None, **kwargs: Unpack[DeprecatedKwargs], ) -> ( - Callable[[Callable[P, Awaitable[T]] | Callable[P, T]], _TaskFunction[P, T]] + Callable[[Callable[P, T]], _TaskFunction[P, T]] + | Callable[[Callable[P, Awaitable[T]]], _TaskFunction[P, T]] | _TaskFunction[P, T] ): """Define a LangGraph task using the `task` decorator.