From dc7fdc6f5dc19935845eb407028ef86abe6c691a Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Fri, 21 Oct 2022 18:04:22 +0100 Subject: [PATCH] Fix `invoke` regression (#8950) * Fix `invoke` regression --- stubs/invoke/@tests/test_cases/check_task.py | 17 +++++++++++++++++ stubs/invoke/invoke/tasks.pyi | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 stubs/invoke/@tests/test_cases/check_task.py 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]