From c8a315838c05a1016fd5389c7e7237b4f26dbe78 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Fri, 20 Jun 2025 17:33:59 +0400 Subject: [PATCH 1/4] [click-web] Remove from pyrightconfig --- pyrightconfig.stricter.json | 1 - stubs/click-web/click_web/resources/cmd_form.pyi | 8 +++++++- stubs/click-web/click_web/resources/input_fields.pyi | 12 ++++-------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 9682568f3f9c..0454d17179e3 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -34,7 +34,6 @@ "stubs/boltons", "stubs/braintree", "stubs/cffi", - "stubs/click-web", "stubs/dateparser", "stubs/defusedxml", "stubs/docker", diff --git a/stubs/click-web/click_web/resources/cmd_form.pyi b/stubs/click-web/click_web/resources/cmd_form.pyi index fff80bd290ee..9b33937f9d6f 100644 --- a/stubs/click-web/click_web/resources/cmd_form.pyi +++ b/stubs/click-web/click_web/resources/cmd_form.pyi @@ -1,6 +1,12 @@ +from typing import Any, TypedDict + import click +class _FormData(TypedDict): + command: click.Command + fields: list[dict[str, Any]] # each item is result of resources.input_fields.get_input_field() function + def get_form_for(command_path: str) -> str: ... def _get_commands_by_path(command_path: str) -> list[tuple[click.Context, click.Command]]: ... -def _generate_form_data(ctx_and_commands: list[tuple[click.Context, click.Command]]): ... +def _generate_form_data(ctx_and_commands: list[tuple[click.Context, click.Command]]) -> list[_FormData]: ... def _process_help(help_text: bool) -> str: ... diff --git a/stubs/click-web/click_web/resources/input_fields.pyi b/stubs/click-web/click_web/resources/input_fields.pyi index bffb313868b2..a77853d9f5df 100644 --- a/stubs/click-web/click_web/resources/input_fields.pyi +++ b/stubs/click-web/click_web/resources/input_fields.pyi @@ -1,4 +1,3 @@ -import sys from typing import Any, ClassVar, Final import click @@ -25,7 +24,7 @@ class FieldId: form_type: str, name: str, key: str | None = None, - ): ... + ) -> None: ... @classmethod def from_string(cls, field_info_as_string: str) -> FieldId: ... @@ -44,13 +43,10 @@ class BaseInput: @property def type_attrs(self) -> dict[str, Any]: ... def _to_cmd_line_name(self, name: str) -> str: ... - def _build_name(self, name: str): ... + def _build_name(self, name: str) -> str: ... class ChoiceInput(BaseInput): - if sys.version_info >= (3, 10): - param_type_cls: type[click.Choice[Any]] - else: - param_type_cls: type[click.Choice] + param_type_cls: type[click.Choice[Any]] class FlagInput(BaseInput): param_type_cls: None @@ -82,4 +78,4 @@ class DefaultInput(BaseInput): INPUT_TYPES: Final[list[type[BaseInput]]] _DEFAULT_INPUT: Final[list[type[DefaultInput]]] -def get_input_field(ctx: click.Context, param: click.Parameter, command_index, param_index) -> dict[str, Any]: ... +def get_input_field(ctx: click.Context, param: click.Parameter, command_index: int, param_index: int) -> dict[str, Any]: ... From 7aac67a3e236b7557c542b6a7ce9dd002254e8a6 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Fri, 20 Jun 2025 17:41:18 +0400 Subject: [PATCH 2/4] ? --- stubs/click-web/click_web/resources/input_fields.pyi | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stubs/click-web/click_web/resources/input_fields.pyi b/stubs/click-web/click_web/resources/input_fields.pyi index a77853d9f5df..089e35fe5936 100644 --- a/stubs/click-web/click_web/resources/input_fields.pyi +++ b/stubs/click-web/click_web/resources/input_fields.pyi @@ -1,3 +1,4 @@ +import sys from typing import Any, ClassVar, Final import click @@ -46,7 +47,10 @@ class BaseInput: def _build_name(self, name: str) -> str: ... class ChoiceInput(BaseInput): - param_type_cls: type[click.Choice[Any]] + if sys.version_info >= (3, 10): + param_type_cls: type[click.Choice[Any]] + else: + param_type_cls: type[click.Choice] # pyright: ignore[reportMissingTypeArgument] class FlagInput(BaseInput): param_type_cls: None From 96b50d7be14bcb2be472f796138976b3ee74df74 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Fri, 20 Jun 2025 17:46:47 +0400 Subject: [PATCH 3/4] Fix again --- pyrightconfig.stricter.json | 1 + stubs/click-web/click_web/resources/input_fields.pyi | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 0454d17179e3..9935869d4c73 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -34,6 +34,7 @@ "stubs/boltons", "stubs/braintree", "stubs/cffi", + "stubs/click-web/resources/input_fields.pyi", "stubs/dateparser", "stubs/defusedxml", "stubs/docker", diff --git a/stubs/click-web/click_web/resources/input_fields.pyi b/stubs/click-web/click_web/resources/input_fields.pyi index 089e35fe5936..ec2ede4d14b2 100644 --- a/stubs/click-web/click_web/resources/input_fields.pyi +++ b/stubs/click-web/click_web/resources/input_fields.pyi @@ -50,7 +50,7 @@ class ChoiceInput(BaseInput): if sys.version_info >= (3, 10): param_type_cls: type[click.Choice[Any]] else: - param_type_cls: type[click.Choice] # pyright: ignore[reportMissingTypeArgument] + param_type_cls: type[click.Choice] class FlagInput(BaseInput): param_type_cls: None From a8af63cb4d324c83e305804abadb9b4bd1fb6946 Mon Sep 17 00:00:00 2001 From: Semyon Moroz Date: Fri, 20 Jun 2025 14:12:02 +0000 Subject: [PATCH 4/4] Update cmd_form.pyi Co-authored-by: Brian Schubert --- stubs/click-web/click_web/resources/cmd_form.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stubs/click-web/click_web/resources/cmd_form.pyi b/stubs/click-web/click_web/resources/cmd_form.pyi index 9b33937f9d6f..d3f3ed573489 100644 --- a/stubs/click-web/click_web/resources/cmd_form.pyi +++ b/stubs/click-web/click_web/resources/cmd_form.pyi @@ -1,7 +1,8 @@ -from typing import Any, TypedDict +from typing import Any, TypedDict, type_check_only import click +@type_check_only class _FormData(TypedDict): command: click.Command fields: list[dict[str, Any]] # each item is result of resources.input_fields.get_input_field() function