Use conditional overloads to simplify several stdlib functions (#7540)

This commit is contained in:
Alex Waygood
2022-03-25 08:47:03 +01:00
committed by GitHub
parent b69d64df60
commit b63c963077
4 changed files with 21 additions and 36 deletions

View File

@@ -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,