From 4768c2bf4fd8e42411a9a8e5a5c35428549c0d87 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Fri, 2 Sep 2022 12:33:19 -0400 Subject: [PATCH 1/4] Fix jsonschema._format.pyi to match upstream This updates the types in jsonschema._format.pyi to match the upstream source's type hints: https://github.com/python-jsonschema/jsonschema/blob/main/jsonschema/_format.py JSONSchema's typeshed version is 4.15.*: https://github.com/python/typeshed/blob/master/stubs/jsonschema/METADATA.toml which was released two days ago: https://github.com/python-jsonschema/jsonschema/releases/tag/v4.15.0 So the use of master as a reference is not a big concern here. --- stubs/jsonschema/jsonschema/_format.pyi | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/stubs/jsonschema/jsonschema/_format.pyi b/stubs/jsonschema/jsonschema/_format.pyi index 377c2b494819..deedb2eac109 100644 --- a/stubs/jsonschema/jsonschema/_format.pyi +++ b/stubs/jsonschema/jsonschema/_format.pyi @@ -2,18 +2,19 @@ from collections.abc import Callable, Iterable from typing import Any, TypeVar, Union from typing_extensions import TypeAlias -_F = TypeVar("_F", bound=Callable[..., Any]) +_FormatCheckCallable = typing.Callable[[object], bool] +_F = TypeVar("_F", bound=_FormatCheckCallable) _RaisesType: TypeAlias = Union[type[Exception], tuple[type[Exception], ...]] class FormatChecker: - checkers: dict[str, tuple[Callable[[Any], bool], _RaisesType]] + checkers: dict[str, tuple[_FormatCheckCallable, _RaisesType]] def __init__(self, formats: Iterable[str] | None = ...) -> None: ... def checks(self, format: str, raises: _RaisesType = ...) -> Callable[[_F], _F]: ... @classmethod def cls_checks(cls, format: str, raises: _RaisesType = ...) -> Callable[[_F], _F]: ... - def check(self, instance: Any, format: str) -> None: ... - def conforms(self, instance: Any, format: str) -> bool: ... + def check(self, instance: object, format: str) -> None: ... + def conforms(self, instance: object, format: str) -> bool: ... draft3_format_checker: FormatChecker draft4_format_checker: FormatChecker From 8a81b1d97ad56e564cdba502821d2c5141a389e0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 16:35:03 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/jsonschema/jsonschema/_format.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/jsonschema/jsonschema/_format.pyi b/stubs/jsonschema/jsonschema/_format.pyi index deedb2eac109..749c19b1a859 100644 --- a/stubs/jsonschema/jsonschema/_format.pyi +++ b/stubs/jsonschema/jsonschema/_format.pyi @@ -1,5 +1,5 @@ from collections.abc import Callable, Iterable -from typing import Any, TypeVar, Union +from typing import TypeVar, Union from typing_extensions import TypeAlias _FormatCheckCallable = typing.Callable[[object], bool] From c225dc1ad67dd96c36b5926af70ddf56b6f74801 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Fri, 2 Sep 2022 12:36:42 -0400 Subject: [PATCH 3/4] Fix incorrect type alias --- stubs/jsonschema/jsonschema/_format.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/jsonschema/jsonschema/_format.pyi b/stubs/jsonschema/jsonschema/_format.pyi index 749c19b1a859..2f3df1bd77e8 100644 --- a/stubs/jsonschema/jsonschema/_format.pyi +++ b/stubs/jsonschema/jsonschema/_format.pyi @@ -2,7 +2,7 @@ from collections.abc import Callable, Iterable from typing import TypeVar, Union from typing_extensions import TypeAlias -_FormatCheckCallable = typing.Callable[[object], bool] +_FormatCheckCallable: TypeAlias = Callable[[object], bool] _F = TypeVar("_F", bound=_FormatCheckCallable) _RaisesType: TypeAlias = Union[type[Exception], tuple[type[Exception], ...]] From d49237f01b4e604d221d4d5c227f1d29f0c258b3 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Fri, 2 Sep 2022 13:16:01 -0400 Subject: [PATCH 4/4] refactor: remove unnecessary allowlist by installing dependencies and update for mypy bug --- stubs/jsonschema/@tests/stubtest_allowlist.txt | 16 ++-------------- stubs/jsonschema/METADATA.toml | 3 +++ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/stubs/jsonschema/@tests/stubtest_allowlist.txt b/stubs/jsonschema/@tests/stubtest_allowlist.txt index 48d08e94735c..906e10ab8a4b 100644 --- a/stubs/jsonschema/@tests/stubtest_allowlist.txt +++ b/stubs/jsonschema/@tests/stubtest_allowlist.txt @@ -1,14 +1,2 @@ -jsonschema._format.is_css21_color -jsonschema._format.is_css_color_code -jsonschema._format.is_datetime -jsonschema._format.is_duration -jsonschema._format.is_host_name -jsonschema._format.is_idn_host_name -jsonschema._format.is_iri -jsonschema._format.is_iri_reference -jsonschema._format.is_json_pointer -jsonschema._format.is_relative_json_pointer -jsonschema._format.is_time -jsonschema._format.is_uri -jsonschema._format.is_uri_reference -jsonschema._format.is_uri_template +# TODO: remove _FormatCheckCallable when mypy 0.980 is released +jsonschema._format._FormatCheckCallable diff --git a/stubs/jsonschema/METADATA.toml b/stubs/jsonschema/METADATA.toml index bac7dbcc5a2e..21fb1636d829 100644 --- a/stubs/jsonschema/METADATA.toml +++ b/stubs/jsonschema/METADATA.toml @@ -1 +1,4 @@ version = "4.15.*" + +[tool.stubtest] +extras = ["format"]