diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 5a834b417486..1aaa9da0cb98 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -1477,16 +1477,14 @@ def sorted( ) -> list[SupportsRichComparisonT]: ... @overload def sorted(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsRichComparison], reverse: bool = ...) -> list[_T]: ... +@overload +def sum(__iterable: Iterable[_T]) -> _T | Literal[0]: ... if sys.version_info >= (3, 8): - @overload - def sum(__iterable: Iterable[_T]) -> _T | Literal[0]: ... @overload def sum(__iterable: Iterable[_T], start: _S) -> _T | _S: ... else: - @overload - def sum(__iterable: Iterable[_T]) -> _T | Literal[0]: ... @overload def sum(__iterable: Iterable[_T], __start: _S) -> _T | _S: ... diff --git a/stdlib/dataclasses.pyi b/stdlib/dataclasses.pyi index f8e4044932ed..d82e9a2bb526 100644 --- a/stdlib/dataclasses.pyi +++ b/stdlib/dataclasses.pyi @@ -65,11 +65,20 @@ def astuple(obj: Any) -> tuple[Any, ...]: ... @overload def astuple(obj: Any, *, tuple_factory: Callable[[list[Any]], _T]) -> _T: ... -if sys.version_info >= (3, 10): +if sys.version_info >= (3, 8): + # cls argument is now positional-only @overload def dataclass(__cls: type[_T]) -> type[_T]: ... @overload def dataclass(__cls: None) -> Callable[[type[_T]], type[_T]]: ... + +else: + @overload + def dataclass(_cls: type[_T]) -> type[_T]: ... + @overload + def dataclass(_cls: None) -> Callable[[type[_T]], type[_T]]: ... + +if sys.version_info >= (3, 10): @overload def dataclass( *, @@ -84,22 +93,7 @@ if sys.version_info >= (3, 10): slots: bool = ..., ) -> Callable[[type[_T]], type[_T]]: ... -elif sys.version_info >= (3, 8): - # cls argument is now positional-only - @overload - def dataclass(__cls: type[_T]) -> type[_T]: ... - @overload - def dataclass(__cls: None) -> Callable[[type[_T]], type[_T]]: ... - @overload - def dataclass( - *, init: bool = ..., repr: bool = ..., eq: bool = ..., order: bool = ..., unsafe_hash: bool = ..., frozen: bool = ... - ) -> Callable[[type[_T]], type[_T]]: ... - else: - @overload - def dataclass(_cls: type[_T]) -> type[_T]: ... - @overload - def dataclass(_cls: None) -> Callable[[type[_T]], type[_T]]: ... @overload def dataclass( *, init: bool = ..., repr: bool = ..., eq: bool = ..., order: bool = ..., unsafe_hash: bool = ..., frozen: bool = ... diff --git a/stdlib/enum.pyi b/stdlib/enum.pyi index a7075e030429..f49bcd7a00e0 100644 --- a/stdlib/enum.pyi +++ b/stdlib/enum.pyi @@ -95,11 +95,11 @@ class EnumMeta(ABCMeta): def __members__(self: type[_EnumMemberT]) -> types.MappingProxyType[str, _EnumMemberT]: ... def __len__(self) -> int: ... def __bool__(self) -> Literal[True]: ... + # Simple value lookup + @overload # type: ignore[override] + def __call__(cls: type[_EnumMemberT], value: Any, names: None = ...) -> _EnumMemberT: ... + # Functional Enum API if sys.version_info >= (3, 11): - # Simple value lookup - @overload # type: ignore[override] - def __call__(cls: type[_EnumMemberT], value: Any, names: None = ...) -> _EnumMemberT: ... - # Functional Enum API @overload def __call__( cls, @@ -113,8 +113,6 @@ class EnumMeta(ABCMeta): boundary: FlagBoundary | None = ..., ) -> type[Enum]: ... else: - @overload # type: ignore[override] - def __call__(cls: type[_EnumMemberT], value: Any, names: None = ...) -> _EnumMemberT: ... @overload def __call__( cls, diff --git a/stdlib/os/__init__.pyi b/stdlib/os/__init__.pyi index 267a2b44e7db..1703684c7f3c 100644 --- a/stdlib/os/__init__.pyi +++ b/stdlib/os/__init__.pyi @@ -732,20 +732,15 @@ class _ScandirIterator(Iterator[DirEntry[AnyStr]], AbstractContextManager[_Scand def __exit__(self, *args: object) -> None: ... def close(self) -> None: ... +@overload +def scandir(path: None = ...) -> _ScandirIterator[str]: ... + if sys.version_info >= (3, 7): - @overload - def scandir(path: None = ...) -> _ScandirIterator[str]: ... @overload def scandir(path: int) -> _ScandirIterator[str]: ... - @overload - def scandir(path: AnyStr | PathLike[AnyStr]) -> _ScandirIterator[AnyStr]: ... - -else: - @overload - def scandir(path: None = ...) -> _ScandirIterator[str]: ... - @overload - def scandir(path: AnyStr | PathLike[AnyStr]) -> _ScandirIterator[AnyStr]: ... +@overload +def scandir(path: AnyStr | PathLike[AnyStr]) -> _ScandirIterator[AnyStr]: ... def stat(path: _FdOrAnyPath, *, dir_fd: int | None = ..., follow_symlinks: bool = ...) -> stat_result: ... if sys.version_info < (3, 7):