stubs/invoke/invoke/tasks.pyi (65 lines of code) (raw):

from _typeshed import Self from typing import Any from .config import Config from .context import Context NO_DEFAULT: object class Task: body: Any __doc__: str __name__: str __module__: Any aliases: Any is_default: bool positional: Any optional: Any iterable: Any incrementable: Any auto_shortflags: Any help: Any pre: Any post: Any times_called: int autoprint: Any def __init__( self, body, name=..., aliases=..., positional=..., optional=..., default: bool = ..., auto_shortflags: bool = ..., help=..., pre=..., post=..., autoprint: bool = ..., iterable=..., incrementable=..., ) -> None: ... @property def name(self): ... def __eq__(self, other): ... def __hash__(self): ... def __call__(self, *args, **kwargs): ... @property def called(self): ... def argspec(self, body): ... def fill_implicit_positionals(self, positional): ... def arg_opts(self, name, default, taken_names): ... def get_arguments(self): ... def task(*args, **kwargs) -> Task: ... class Call: task: Task called_as: str | None args: tuple[Any, ...] kwargs: dict[str, Any] def __init__( self, task: Task, called_as: str | None = ..., args: tuple[Any, ...] | None = ..., kwargs: dict[str, Any] | None = ... ) -> None: ... def __getattr__(self, name: str) -> Any: ... def __deepcopy__(self: Self, memo: Any) -> Self: ... def __eq__(self, other: Call) -> bool: ... # type: ignore[override] def make_context(self, config: Config) -> Context: ... def clone_data(self): ... # TODO use overload def clone(self, into: type[Call] | None = ..., with_: dict[str, Any] | None = ...) -> Call: ... def call(task: Task, *args: Any, **kwargs: Any) -> Call: ...