From a51d6d0085a2dd2ba32fc9e19d00d8016dda6730 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Mon, 12 May 2025 08:43:59 +0400 Subject: [PATCH 1/4] Bump `enum` to 3.14 --- stdlib/@tests/stubtest_allowlists/py314.txt | 3 --- stdlib/enum.pyi | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/py314.txt b/stdlib/@tests/stubtest_allowlists/py314.txt index 67a725257bbe..f37d5d9c7676 100644 --- a/stdlib/@tests/stubtest_allowlists/py314.txt +++ b/stdlib/@tests/stubtest_allowlists/py314.txt @@ -106,9 +106,6 @@ dataclasses.make_dataclass decimal.Decimal.from_number decimal.IEEE_CONTEXT_MAX_BITS dis.Instruction.make -enum.Enum.__signature__ -enum.EnumMeta.__signature__ -enum.EnumType.__signature__ faulthandler.dump_c_stack fnmatch.__all__ fnmatch.filterfalse diff --git a/stdlib/enum.pyi b/stdlib/enum.pyi index 26f198867113..4d0ce33b9be3 100644 --- a/stdlib/enum.pyi +++ b/stdlib/enum.pyi @@ -4,6 +4,7 @@ import types from _typeshed import SupportsKeysAndGetItem, Unused from builtins import property as _builtins_property from collections.abc import Callable, Iterable, Iterator, Mapping +from inspect import Signature from typing import Any, Generic, Literal, TypeVar, overload from typing_extensions import Self, TypeAlias @@ -166,6 +167,9 @@ class EnumMeta(type): if sys.version_info >= (3, 12): @overload def __call__(cls: type[_EnumMemberT], value: Any, *values: Any) -> _EnumMemberT: ... + if sys.version_info >= (3, 14): + @property + def __signature__(cls) -> Signature: ... _member_names_: list[str] # undocumented _member_map_: dict[str, Enum] # undocumented @@ -212,7 +216,7 @@ class Enum(metaclass=EnumMeta): if sys.version_info >= (3, 11): def __copy__(self) -> Self: ... def __deepcopy__(self, memo: Any) -> Self: ... - if sys.version_info >= (3, 12): + if sys.version_info >= (3, 12) and sys.version_info < (3, 14): @classmethod def __signature__(cls) -> str: ... From 04e9aec9301e3155144fba67cee7405b94e6b7d5 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Mon, 12 May 2025 14:32:40 +0400 Subject: [PATCH 2/4] Move import --- stdlib/enum.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/enum.pyi b/stdlib/enum.pyi index 4d0ce33b9be3..d1cc5708209d 100644 --- a/stdlib/enum.pyi +++ b/stdlib/enum.pyi @@ -4,7 +4,6 @@ import types from _typeshed import SupportsKeysAndGetItem, Unused from builtins import property as _builtins_property from collections.abc import Callable, Iterable, Iterator, Mapping -from inspect import Signature from typing import Any, Generic, Literal, TypeVar, overload from typing_extensions import Self, TypeAlias @@ -168,6 +167,7 @@ class EnumMeta(type): @overload def __call__(cls: type[_EnumMemberT], value: Any, *values: Any) -> _EnumMemberT: ... if sys.version_info >= (3, 14): + from inspect import Signature @property def __signature__(cls) -> Signature: ... From 32c67ed6a2a12688132e65fa2ec3af625040ef54 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Mon, 12 May 2025 14:42:54 +0400 Subject: [PATCH 3/4] Fix inspect.pyi errors --- stdlib/enum.pyi | 2 +- stdlib/inspect.pyi | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/stdlib/enum.pyi b/stdlib/enum.pyi index d1cc5708209d..4d0ce33b9be3 100644 --- a/stdlib/enum.pyi +++ b/stdlib/enum.pyi @@ -4,6 +4,7 @@ import types from _typeshed import SupportsKeysAndGetItem, Unused from builtins import property as _builtins_property from collections.abc import Callable, Iterable, Iterator, Mapping +from inspect import Signature from typing import Any, Generic, Literal, TypeVar, overload from typing_extensions import Self, TypeAlias @@ -167,7 +168,6 @@ class EnumMeta(type): @overload def __call__(cls: type[_EnumMemberT], value: Any, *values: Any) -> _EnumMemberT: ... if sys.version_info >= (3, 14): - from inspect import Signature @property def __signature__(cls) -> Signature: ... diff --git a/stdlib/inspect.pyi b/stdlib/inspect.pyi index e19c2a634aa0..d1a0863905cb 100644 --- a/stdlib/inspect.pyi +++ b/stdlib/inspect.pyi @@ -418,11 +418,11 @@ class Parameter: def __init__(self, name: str, kind: _ParameterKind, *, default: Any = ..., annotation: Any = ...) -> None: ... empty = _empty - POSITIONAL_ONLY: ClassVar[Literal[_ParameterKind.POSITIONAL_ONLY]] - POSITIONAL_OR_KEYWORD: ClassVar[Literal[_ParameterKind.POSITIONAL_OR_KEYWORD]] - VAR_POSITIONAL: ClassVar[Literal[_ParameterKind.VAR_POSITIONAL]] - KEYWORD_ONLY: ClassVar[Literal[_ParameterKind.KEYWORD_ONLY]] - VAR_KEYWORD: ClassVar[Literal[_ParameterKind.VAR_KEYWORD]] + POSITIONAL_ONLY: ClassVar[Literal[0]] + POSITIONAL_OR_KEYWORD: ClassVar[Literal[1]] + VAR_POSITIONAL: ClassVar[Literal[2]] + KEYWORD_ONLY: ClassVar[Literal[3]] + VAR_KEYWORD: ClassVar[Literal[4]] @property def name(self) -> str: ... @property From bbe032f03134bbdec17f8e548ec2c0307e77cdcd Mon Sep 17 00:00:00 2001 From: donBarbos Date: Tue, 13 May 2025 08:59:43 +0400 Subject: [PATCH 4/4] Revert class vars for _ParameterKind --- stdlib/enum.pyi | 4 ++-- stdlib/inspect.pyi | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/stdlib/enum.pyi b/stdlib/enum.pyi index 4d0ce33b9be3..327b135459a0 100644 --- a/stdlib/enum.pyi +++ b/stdlib/enum.pyi @@ -4,7 +4,6 @@ import types from _typeshed import SupportsKeysAndGetItem, Unused from builtins import property as _builtins_property from collections.abc import Callable, Iterable, Iterator, Mapping -from inspect import Signature from typing import Any, Generic, Literal, TypeVar, overload from typing_extensions import Self, TypeAlias @@ -54,6 +53,7 @@ _EnumerationT = TypeVar("_EnumerationT", bound=type[Enum]) # >>> Enum('Foo', names={'RED': 1, 'YELLOW': 2}) # _EnumNames: TypeAlias = str | Iterable[str] | Iterable[Iterable[str | Any]] | Mapping[str, Any] +_Signature: TypeAlias = Any # TODO: Unable to import Signature from inspect module if sys.version_info >= (3, 11): class nonmember(Generic[_EnumMemberT]): @@ -169,7 +169,7 @@ class EnumMeta(type): def __call__(cls: type[_EnumMemberT], value: Any, *values: Any) -> _EnumMemberT: ... if sys.version_info >= (3, 14): @property - def __signature__(cls) -> Signature: ... + def __signature__(cls) -> _Signature: ... _member_names_: list[str] # undocumented _member_map_: dict[str, Enum] # undocumented diff --git a/stdlib/inspect.pyi b/stdlib/inspect.pyi index d1a0863905cb..e19c2a634aa0 100644 --- a/stdlib/inspect.pyi +++ b/stdlib/inspect.pyi @@ -418,11 +418,11 @@ class Parameter: def __init__(self, name: str, kind: _ParameterKind, *, default: Any = ..., annotation: Any = ...) -> None: ... empty = _empty - POSITIONAL_ONLY: ClassVar[Literal[0]] - POSITIONAL_OR_KEYWORD: ClassVar[Literal[1]] - VAR_POSITIONAL: ClassVar[Literal[2]] - KEYWORD_ONLY: ClassVar[Literal[3]] - VAR_KEYWORD: ClassVar[Literal[4]] + POSITIONAL_ONLY: ClassVar[Literal[_ParameterKind.POSITIONAL_ONLY]] + POSITIONAL_OR_KEYWORD: ClassVar[Literal[_ParameterKind.POSITIONAL_OR_KEYWORD]] + VAR_POSITIONAL: ClassVar[Literal[_ParameterKind.VAR_POSITIONAL]] + KEYWORD_ONLY: ClassVar[Literal[_ParameterKind.KEYWORD_ONLY]] + VAR_KEYWORD: ClassVar[Literal[_ParameterKind.VAR_KEYWORD]] @property def name(self) -> str: ... @property