diff --git a/stubs/invoke/@tests/test_cases/check_task.py b/stubs/invoke/@tests/test_cases/check_task.py new file mode 100644 index 000000000..6ad7b8cd0 --- /dev/null +++ b/stubs/invoke/@tests/test_cases/check_task.py @@ -0,0 +1,17 @@ +# pyright: reportUnnecessaryTypeIgnoreComment=true + +from invoke import Context, task + +# =========================================== +# This snippet is a regression test for #8936 +# =========================================== + + +@task +def docker_build(context: Context) -> None: + pass + + +@task(docker_build) +def docker_push(context: Context) -> None: + pass diff --git a/stubs/invoke/invoke/tasks.pyi b/stubs/invoke/invoke/tasks.pyi index ca1379723..720d2bd1a 100644 --- a/stubs/invoke/invoke/tasks.pyi +++ b/stubs/invoke/invoke/tasks.pyi @@ -58,8 +58,6 @@ class Task(Generic[_P, _R_co]): def arg_opts(self, name: str, default: Any, taken_names: Iterable[str]) -> dict[str, Any]: ... def get_arguments(self, ignore_unknown_help: bool | None = ...) -> list[Argument]: ... -@overload -def task(__func: Callable[_P, _R_co]) -> Task[_P, _R_co]: ... @overload def task( *args: Task[..., Any], @@ -93,6 +91,8 @@ def task( incrementable: Iterable[str] | None = ..., klass: type[_TaskT], ) -> Callable[[Callable[..., Any]], _TaskT]: ... +@overload +def task(__func: Callable[_P, _R_co]) -> Task[_P, _R_co]: ... class Call: task: Task[..., Any]