From 7345dbc5d376fa876b15446321eeca2cd48e9a55 Mon Sep 17 00:00:00 2001 From: Michael Dubner Date: Wed, 30 Nov 2022 07:35:10 +0300 Subject: [PATCH 01/12] Add stubs for click-default-group --- pyrightconfig.stricter.json | 1 + stubs/click-default-group/METADATA.toml | 4 ++ .../click_default_group.pyi | 40 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 stubs/click-default-group/METADATA.toml create mode 100644 stubs/click-default-group/click_default_group.pyi diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 06d11f1a33b9..78f0265f581a 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -27,6 +27,7 @@ "stubs/braintree", "stubs/caldav", "stubs/cffi", + "stubs/click-default-group", "stubs/commonmark", "stubs/cryptography", "stubs/dateparser", diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml new file mode 100644 index 000000000000..8d199dc3bda1 --- /dev/null +++ b/stubs/click-default-group/METADATA.toml @@ -0,0 +1,4 @@ +version = "1.2.*" + +[tool.stubtest] +ignore_missing_stub = false diff --git a/stubs/click-default-group/click_default_group.pyi b/stubs/click-default-group/click_default_group.pyi new file mode 100644 index 000000000000..a31544a8eca8 --- /dev/null +++ b/stubs/click-default-group/click_default_group.pyi @@ -0,0 +1,40 @@ +import typing as t + +import click + +__version__: str + +class DefaultGroup(click.Group): + ignore_unknown_options: bool + default_cmd_name: str + default_if_no_args: bool + def __init__(self, *args, **kwargs) -> None: ... + def set_default_command(self, command: str) -> None: ... + def parse_args(self, ctx: click.Context, args: list[str]) -> list: ... + 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 + +class DefaultCommandFormatter: + group: click.Group + formatter: click.HelpFormatter + mark: str + def __init__(self, group: click.Group, formatter: click.HelpFormatter, mark: str) -> None: ... + def write_dl(self, rows: t.Sequence[tuple[str, str]], col_max: int = ..., col_spacing: int = ...) -> None: ... + # def __getattr__(self, attr: str) -> t.Any: ... + # __getattr__ used to ala-derive from click.HelpFormatter: + indent_increment: int + width: t.Optional[int] + 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: ... From d39549cf1b5f9aefc58989a29e10e095f4d449eb Mon Sep 17 00:00:00 2001 From: Michael Dubner Date: Wed, 30 Nov 2022 17:40:11 +0300 Subject: [PATCH 02/12] make stubtest happy: remove __getattr__-derived methods from DefaultCommandFormatter --- .../click_default_group.pyi | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/stubs/click-default-group/click_default_group.pyi b/stubs/click-default-group/click_default_group.pyi index a31544a8eca8..70a4e554087d 100644 --- a/stubs/click-default-group/click_default_group.pyi +++ b/stubs/click-default-group/click_default_group.pyi @@ -1,4 +1,5 @@ import typing as t +from _typeshed import Incomplete import click @@ -10,7 +11,7 @@ class DefaultGroup(click.Group): default_if_no_args: bool def __init__(self, *args, **kwargs) -> None: ... def set_default_command(self, command: str) -> None: ... - def parse_args(self, ctx: click.Context, args: list[str]) -> list: ... + 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: ... @@ -20,21 +21,21 @@ 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: t.Sequence[tuple[str, str]], col_max: int = ..., col_spacing: int = ...) -> None: ... - # def __getattr__(self, attr: str) -> t.Any: ... + def __getattr__(self, attr: str) -> Incomplete: ... # __getattr__ used to ala-derive from click.HelpFormatter: - indent_increment: int - width: t.Optional[int] - 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: ... + # 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: ... From 927abacf11cc564f367e51741e78301596310252 Mon Sep 17 00:00:00 2001 From: Michael Dubner Date: Wed, 30 Nov 2022 18:36:42 +0300 Subject: [PATCH 03/12] requires = ["click"] to click-default-group/METADATA.toml --- stubs/click-default-group/METADATA.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index 8d199dc3bda1..b245136ad61a 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,4 +1,5 @@ version = "1.2.*" +requires = ["click"] [tool.stubtest] ignore_missing_stub = false From edb82a7045c983842fe387fa11b0b6224f3e2236 Mon Sep 17 00:00:00 2001 From: Michael Dubner Date: Thu, 1 Dec 2022 02:58:33 +0300 Subject: [PATCH 04/12] replace all click interfaces with Incomplete until implementation of GH-5768 --- stubs/click-default-group/METADATA.toml | 2 +- .../click_default_group.pyi | 23 +++++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index b245136ad61a..5c234dc06e9f 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,5 +1,5 @@ version = "1.2.*" -requires = ["click"] +requires = [] [tool.stubtest] ignore_missing_stub = false diff --git a/stubs/click-default-group/click_default_group.pyi b/stubs/click-default-group/click_default_group.pyi index 70a4e554087d..9fadd5c8fdbc 100644 --- a/stubs/click-default-group/click_default_group.pyi +++ b/stubs/click-default-group/click_default_group.pyi @@ -1,27 +1,30 @@ import typing as t from _typeshed import Incomplete -import click +_Group = Incomplete # must be replaced by click.Group after implementing of https://github.com/python/typeshed/issues/5768 +_Command = Incomplete # must be replaced by click.Command after implementing of GH-5768 +_Context = Incomplete # must be replaced by click.Context after implementing of GH-5768 +_HelpFormatter = Incomplete # must be replaced by click.HelpFormatter after implementing of GH-5768 __version__: str -class DefaultGroup(click.Group): +class DefaultGroup(_Group): ignore_unknown_options: bool default_cmd_name: str default_if_no_args: bool def __init__(self, *args, **kwargs) -> None: ... def set_default_command(self, command: str) -> 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 + def parse_args(self, ctx: _Context, args: list[str]) -> list[str]: ... + def get_command(self, ctx: _Context, cmd_name: str) -> _Command | None: ... + def resolve_command(self, ctx: _Context, args: list[str]) -> tuple[str | None, _Command | None, list[str]]: ... + def format_commands(self, ctx: _Context, formatter: _HelpFormatter) -> None: ... + def command(self, *args, **kwargs) -> _Command: ... # incomplete class DefaultCommandFormatter: - group: click.Group - formatter: click.HelpFormatter + group: _Group + formatter: _HelpFormatter mark: str - def __init__(self, group: click.Group, formatter: click.HelpFormatter, mark: str = ...) -> None: ... + def __init__(self, group: _Group, formatter: _HelpFormatter, mark: str = ...) -> None: ... def write_dl(self, rows: t.Sequence[tuple[str, str]], col_max: int = ..., col_spacing: int = ...) -> None: ... def __getattr__(self, attr: str) -> Incomplete: ... # __getattr__ used to ala-derive from click.HelpFormatter: From 96908e13bd3c703eae643bbc71311b164dd1ba6a Mon Sep 17 00:00:00 2001 From: AlexWaygood Date: Tue, 10 Jan 2023 23:22:22 +0000 Subject: [PATCH 05/12] Revert "replace all click interfaces with Incomplete until implementation of GH-5768" This reverts commit edb82a7045c983842fe387fa11b0b6224f3e2236. --- stubs/click-default-group/METADATA.toml | 2 +- .../click_default_group.pyi | 23 ++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index 5c234dc06e9f..b245136ad61a 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,5 +1,5 @@ version = "1.2.*" -requires = [] +requires = ["click"] [tool.stubtest] ignore_missing_stub = false diff --git a/stubs/click-default-group/click_default_group.pyi b/stubs/click-default-group/click_default_group.pyi index 9fadd5c8fdbc..70a4e554087d 100644 --- a/stubs/click-default-group/click_default_group.pyi +++ b/stubs/click-default-group/click_default_group.pyi @@ -1,30 +1,27 @@ import typing as t from _typeshed import Incomplete -_Group = Incomplete # must be replaced by click.Group after implementing of https://github.com/python/typeshed/issues/5768 -_Command = Incomplete # must be replaced by click.Command after implementing of GH-5768 -_Context = Incomplete # must be replaced by click.Context after implementing of GH-5768 -_HelpFormatter = Incomplete # must be replaced by click.HelpFormatter after implementing of GH-5768 +import click __version__: str -class DefaultGroup(_Group): +class DefaultGroup(click.Group): ignore_unknown_options: bool default_cmd_name: str default_if_no_args: bool def __init__(self, *args, **kwargs) -> None: ... def set_default_command(self, command: str) -> None: ... - def parse_args(self, ctx: _Context, args: list[str]) -> list[str]: ... - def get_command(self, ctx: _Context, cmd_name: str) -> _Command | None: ... - def resolve_command(self, ctx: _Context, args: list[str]) -> tuple[str | None, _Command | None, list[str]]: ... - def format_commands(self, ctx: _Context, formatter: _HelpFormatter) -> None: ... - def command(self, *args, **kwargs) -> _Command: ... # incomplete + 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 class DefaultCommandFormatter: - group: _Group - formatter: _HelpFormatter + group: click.Group + formatter: click.HelpFormatter mark: str - def __init__(self, group: _Group, formatter: _HelpFormatter, mark: str = ...) -> None: ... + def __init__(self, group: click.Group, formatter: click.HelpFormatter, mark: str = ...) -> None: ... def write_dl(self, rows: t.Sequence[tuple[str, str]], col_max: int = ..., col_spacing: int = ...) -> None: ... def __getattr__(self, attr: str) -> Incomplete: ... # __getattr__ used to ala-derive from click.HelpFormatter: From f860741088ba7bd79c24e43d45b48d011c165e5f Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Mon, 8 May 2023 17:13:12 +0100 Subject: [PATCH 06/12] Remove redundant setting in METADATA.toml Co-authored-by: Avasam --- stubs/click-default-group/METADATA.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index b245136ad61a..48d7193e2d45 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,5 +1,3 @@ version = "1.2.*" requires = ["click"] -[tool.stubtest] -ignore_missing_stub = false From 3361b6d89d9a6c87a53a43f27dd26adad1e24579 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Mon, 8 May 2023 17:13:31 +0100 Subject: [PATCH 07/12] unnecessary blank line --- stubs/click-default-group/METADATA.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index 48d7193e2d45..966601d112c3 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,3 +1,2 @@ version = "1.2.*" requires = ["click"] - From 96623375680f92d3818a1540be345d5ba98274fc Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 22 Jul 2023 19:10:01 +0100 Subject: [PATCH 08/12] add upstream url --- stubs/click-default-group/METADATA.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index 966601d112c3..a6f631949423 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,2 +1,3 @@ version = "1.2.*" requires = ["click"] +upstream_url = "https://github.com/click-contrib/click-default-group" From a59b2e63dbc5fc15550801d948285164059e93b0 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 22 Jul 2023 19:12:20 +0100 Subject: [PATCH 09/12] . --- stubs/click-default-group/METADATA.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index a6f631949423..9320410987ca 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,3 +1,3 @@ version = "1.2.*" requires = ["click"] -upstream_url = "https://github.com/click-contrib/click-default-group" +upstream_repository = "https://github.com/click-contrib/click-default-group" From 6f1489c4da6735b62050e28867c62b96d2c8c25e Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 22 Jul 2023 20:04:53 +0100 Subject: [PATCH 10/12] fixes --- stubs/click-default-group/click_default_group.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stubs/click-default-group/click_default_group.pyi b/stubs/click-default-group/click_default_group.pyi index 70a4e554087d..992f3b43fa91 100644 --- a/stubs/click-default-group/click_default_group.pyi +++ b/stubs/click-default-group/click_default_group.pyi @@ -7,10 +7,10 @@ __version__: str class DefaultGroup(click.Group): ignore_unknown_options: bool - default_cmd_name: str + default_cmd_name: str | None default_if_no_args: bool def __init__(self, *args, **kwargs) -> None: ... - def set_default_command(self, command: str) -> 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]]: ... @@ -22,7 +22,7 @@ class DefaultCommandFormatter: formatter: click.HelpFormatter mark: str def __init__(self, group: click.Group, formatter: click.HelpFormatter, mark: str = ...) -> None: ... - def write_dl(self, rows: t.Sequence[tuple[str, str]], col_max: int = ..., col_spacing: int = ...) -> None: ... + def write_dl(self, rows: t.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 From 495cb40bf62c7acdb2ad35d112a528f39f9bef4a Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 22 Jul 2023 20:06:48 +0100 Subject: [PATCH 11/12] pin --- stubs/click-default-group/METADATA.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index 9320410987ca..906b0e4079ab 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,3 +1,4 @@ version = "1.2.*" -requires = ["click"] +# requires a version of click with a py.typed +requires = ["click >= 8.0.0"] upstream_repository = "https://github.com/click-contrib/click-default-group" From 7b531fc1b404e10d9ba843c777b12cfb15ea423a Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sat, 22 Jul 2023 20:08:41 +0100 Subject: [PATCH 12/12] lint --- stubs/click-default-group/METADATA.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/click-default-group/METADATA.toml b/stubs/click-default-group/METADATA.toml index 906b0e4079ab..6475e9bc71da 100644 --- a/stubs/click-default-group/METADATA.toml +++ b/stubs/click-default-group/METADATA.toml @@ -1,4 +1,4 @@ version = "1.2.*" # requires a version of click with a py.typed -requires = ["click >= 8.0.0"] +requires = ["click>=8.0.0"] upstream_repository = "https://github.com/click-contrib/click-default-group"