From 7ab121e505be92197e446ed8e45e8cfe721e3ae5 Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Sat, 12 Oct 2024 13:40:12 -0500 Subject: [PATCH 1/6] Correct types for setuptools.setup --- stubs/setuptools/setuptools/__init__.pyi | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/stubs/setuptools/setuptools/__init__.pyi b/stubs/setuptools/setuptools/__init__.pyi index e15c40197fe2..f1e4966b72bb 100644 --- a/stubs/setuptools/setuptools/__init__.pyi +++ b/stubs/setuptools/setuptools/__init__.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete, StrPath from abc import abstractmethod from collections.abc import Iterable, Mapping, Sequence -from typing import Any, Literal, TypeVar, overload +from typing import Any, Literal, NotRequired, TypedDict, TypeVar, overload from ._distutils.cmd import Command as _Command from .command.alias import alias @@ -45,6 +45,13 @@ __all__ = [ __version__: str +class _Library(TypedDict): + sources: list[str] | tuple[str] + obj_deps: NotRequired[dict[str, list[str] | tuple[str]]] + macros: NotRequired[list[tuple[str, str] | tuple[str]]] + include_dirs: NotRequired[list[str]] + cflags: NotRequired[list[str]] + # Pytype fails with the following: # find_packages = PackageFinder.find # find_namespace_packages = PEP420PackageFinder.find @@ -85,7 +92,7 @@ def setup( command_options: Mapping[str, Mapping[str, tuple[Incomplete, Incomplete]]] = ..., package_data: Mapping[str, list[str]] = ..., include_package_data: bool = ..., - libraries: list[str] = ..., + libraries: list[tuple[str, _Library]] = ..., headers: list[str] = ..., ext_package: str = ..., include_dirs: list[str] = ..., From 1e6ccf16f6ee1a1f4c21566815e181a1c1d4f112 Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Sat, 12 Oct 2024 13:42:31 -0500 Subject: [PATCH 2/6] Tweak --- stubs/setuptools/setuptools/__init__.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stubs/setuptools/setuptools/__init__.pyi b/stubs/setuptools/setuptools/__init__.pyi index f1e4966b72bb..59ecae6b1655 100644 --- a/stubs/setuptools/setuptools/__init__.pyi +++ b/stubs/setuptools/setuptools/__init__.pyi @@ -1,7 +1,8 @@ from _typeshed import Incomplete, StrPath from abc import abstractmethod from collections.abc import Iterable, Mapping, Sequence -from typing import Any, Literal, NotRequired, TypedDict, TypeVar, overload +from typing import Any, Literal, TypedDict, TypeVar, overload +from typing_extensions import NotRequired from ._distutils.cmd import Command as _Command from .command.alias import alias From f0d929f3f2a8767f56bfffd953cc3fb0f923e133 Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Sat, 12 Oct 2024 13:58:15 -0500 Subject: [PATCH 3/6] Address feedback --- stubs/setuptools/setuptools/__init__.pyi | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/stubs/setuptools/setuptools/__init__.pyi b/stubs/setuptools/setuptools/__init__.pyi index 59ecae6b1655..d491286b36b7 100644 --- a/stubs/setuptools/setuptools/__init__.pyi +++ b/stubs/setuptools/setuptools/__init__.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete, StrPath from abc import abstractmethod from collections.abc import Iterable, Mapping, Sequence -from typing import Any, Literal, TypedDict, TypeVar, overload +from typing import Any, Literal, TypedDict, TypeVar, overload, type_check_only from typing_extensions import NotRequired from ._distutils.cmd import Command as _Command @@ -46,7 +46,8 @@ __all__ = [ __version__: str -class _Library(TypedDict): +@type_check_only +class _BuildInfo(TypedDict): sources: list[str] | tuple[str] obj_deps: NotRequired[dict[str, list[str] | tuple[str]]] macros: NotRequired[list[tuple[str, str] | tuple[str]]] @@ -93,7 +94,7 @@ def setup( command_options: Mapping[str, Mapping[str, tuple[Incomplete, Incomplete]]] = ..., package_data: Mapping[str, list[str]] = ..., include_package_data: bool = ..., - libraries: list[tuple[str, _Library]] = ..., + libraries: list[tuple[str, _BuildInfo]] = ..., headers: list[str] = ..., ext_package: str = ..., include_dirs: list[str] = ..., From b1d1efb7775981e8fb0a5aef8770ff90ce2ae3df Mon Sep 17 00:00:00 2001 From: Max Muoto Date: Sat, 12 Oct 2024 17:25:50 -0500 Subject: [PATCH 4/6] Update stubs/setuptools/setuptools/__init__.pyi Co-authored-by: Avasam --- stubs/setuptools/setuptools/__init__.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stubs/setuptools/setuptools/__init__.pyi b/stubs/setuptools/setuptools/__init__.pyi index d491286b36b7..2401faeed716 100644 --- a/stubs/setuptools/setuptools/__init__.pyi +++ b/stubs/setuptools/setuptools/__init__.pyi @@ -94,6 +94,7 @@ def setup( command_options: Mapping[str, Mapping[str, tuple[Incomplete, Incomplete]]] = ..., package_data: Mapping[str, list[str]] = ..., include_package_data: bool = ..., + # libraries for `Distribution` or `build_clib`, not `Extension`, `build_ext` or `CCompiler` libraries: list[tuple[str, _BuildInfo]] = ..., headers: list[str] = ..., ext_package: str = ..., From 2bb4ed4fd83d0b838393db15a1aa8753de02e112 Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Sun, 13 Oct 2024 14:11:38 -0500 Subject: [PATCH 5/6] Address feedback on tuple --- stubs/setuptools/setuptools/__init__.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/setuptools/setuptools/__init__.pyi b/stubs/setuptools/setuptools/__init__.pyi index 2401faeed716..c771b48370a1 100644 --- a/stubs/setuptools/setuptools/__init__.pyi +++ b/stubs/setuptools/setuptools/__init__.pyi @@ -48,8 +48,8 @@ __version__: str @type_check_only class _BuildInfo(TypedDict): - sources: list[str] | tuple[str] - obj_deps: NotRequired[dict[str, list[str] | tuple[str]]] + sources: list[str] | tuple[str, ...] + obj_deps: NotRequired[dict[str, list[str] | tuple[str, ...]]] macros: NotRequired[list[tuple[str, str] | tuple[str]]] include_dirs: NotRequired[list[str]] cflags: NotRequired[list[str]] From 82ad6cbc49100d20819f8e978d074cbc7726798e Mon Sep 17 00:00:00 2001 From: Maxwell Muoto <41130755+max-muoto@users.noreply.github.com> Date: Sun, 13 Oct 2024 14:15:00 -0500 Subject: [PATCH 6/6] Fix --- stubs/setuptools/setuptools/__init__.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/setuptools/setuptools/__init__.pyi b/stubs/setuptools/setuptools/__init__.pyi index c771b48370a1..a30be4aff8b6 100644 --- a/stubs/setuptools/setuptools/__init__.pyi +++ b/stubs/setuptools/setuptools/__init__.pyi @@ -50,7 +50,7 @@ __version__: str class _BuildInfo(TypedDict): sources: list[str] | tuple[str, ...] obj_deps: NotRequired[dict[str, list[str] | tuple[str, ...]]] - macros: NotRequired[list[tuple[str, str] | tuple[str]]] + macros: NotRequired[list[tuple[str] | tuple[str, str | None]]] include_dirs: NotRequired[list[str]] cflags: NotRequired[list[str]]