diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 54d64e5f1..1a9951c48 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -33,7 +33,6 @@ "stubs/braintree", "stubs/caldav", "stubs/cffi", - "stubs/click-default-group", "stubs/click-web", "stubs/corus", "stubs/dateparser", diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index 6475e9bc7..713e657a8 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,4 +1,4 @@ version = "1.2.*" +upstream_repository = "https://github.com/click-contrib/click-default-group" # requires a version of click with a py.typed requires = ["click>=8.0.0"] -upstream_repository = "https://github.com/click-contrib/click-default-group" diff --git a/stubs/click-default-group/click_default_group.pyi b/stubs/click-default-group/click_default_group.pyi index 83541f3cf..c8b46e4da 100644 --- a/stubs/click-default-group/click_default_group.pyi +++ b/stubs/click-default-group/click_default_group.pyi @@ -1,42 +1,83 @@ -from _typeshed import Incomplete -from collections.abc import Sequence +from collections.abc import Callable, MutableMapping, Sequence +from typing import Any, Final, Literal, overload +from typing_extensions import deprecated import click __all__ = ["DefaultGroup"] -__version__: str +__version__: Final[str] class DefaultGroup(click.Group): ignore_unknown_options: bool default_cmd_name: str | None default_if_no_args: bool - def __init__(self, *args, **kwargs) -> None: ... + # type hints were taken from click lib + def __init__( + self, + name: str | None = None, + commands: MutableMapping[str, click.Command] | Sequence[click.Command] | None = None, + *, + ignore_unknown_options: Literal[True] | None = True, + default_cmd_name: str | None = None, + default_if_no_args: bool = False, + invoke_without_command: bool = False, + no_args_is_help: bool | None = None, + subcommand_metavar: str | None = None, + chain: bool = False, + result_callback: Callable[..., Any] | None = None, # Any is specified in click lib + context_settings: MutableMapping[str, Any] | None = None, # Any is specified in click lib + callback: Callable[..., Any] | None = None, # Any is specified in click lib + params: list[click.Parameter] | None = None, + help: str | None = None, + epilog: str | None = None, + short_help: str | None = None, + options_metavar: str | None = "[OPTIONS]", + add_help_option: bool = True, + hidden: bool = False, + deprecated: bool = False, + ) -> None: ... def set_default_command(self, command: click.Command) -> None: ... def parse_args(self, ctx: click.Context, args: list[str]) -> list[str]: ... def get_command(self, ctx: click.Context, cmd_name: str) -> click.Command | None: ... def resolve_command(self, ctx: click.Context, args: list[str]) -> tuple[str | None, click.Command | None, list[str]]: ... def format_commands(self, ctx: click.Context, formatter: click.HelpFormatter) -> None: ... - def command(self, *args, **kwargs) -> click.Command: ... # incomplete + @overload + def command( + self, + __func: Callable[..., Any], + /, + *, + name: str | None = ..., + cls: type[click.Command] | None = ..., + default: Literal[False] = False, + ) -> click.Command: ... + @overload + @deprecated("Use default param of `DefaultGroup` or `set_default_command()` instead") + def command( + self, + __func: Callable[..., Any], + /, + *, + name: str | None = ..., + cls: type[click.Command] | None = ..., + default: Literal[True], + ) -> click.Command: ... + @overload + def command( + self, *, name: str | None = ..., cls: type[click.Command] | None = ..., default: Literal[False] = False + ) -> Callable[[Callable[..., Any]], click.Command]: ... + @overload + @deprecated("Use default param of `DefaultGroup` or `set_default_command()` instead") + def command( + self, *, name: str | None = ..., cls: type[click.Command] | None = ..., default: Literal[True] + ) -> Callable[[Callable[..., Any]], click.Command]: ... + @overload + def command(self, *args: Any, **kwargs: Any) -> Callable[[Callable[..., Any]], click.Command] | click.Command: ... class DefaultCommandFormatter: group: click.Group formatter: click.HelpFormatter mark: str - def __init__(self, group: click.Group, formatter: click.HelpFormatter, mark: str = ...) -> None: ... + def __init__(self, group: click.Group, formatter: click.HelpFormatter, mark: str = "*") -> None: ... def write_dl(self, rows: Sequence[tuple[str, str]], col_max: int = 30, col_spacing: int = -2) -> None: ... - def __getattr__(self, attr: str) -> Incomplete: ... - # __getattr__ used to ala-derive from click.HelpFormatter: - # indent_increment: int - # width: int | None - # current_indent: int - # buffer: t.List[str] - # def write(self, string: str) -> None: ... - # def indent(self) -> None: ... - # def dedent(self) -> None: ... - # def write_usage(self, prog: str, args: str = ..., prefix: str | None = ...) -> None: ... - # def write_heading(self, heading: str) -> None: ... - # def write_paragraph(self) -> None: ... - # def write_text(self, text: str) -> None: ... - # def section(self, name: str) -> t.Iterator[None]: ... - # def indentation(self) -> t.Iterator[None]: ... - # def getvalue(self) -> str: ... + def __getattr__(self, attr: str) -> Any: ... # attribute access is forwarded to click.HelpFormatter