diff --git a/stdlib/3.4/enum.pyi b/stdlib/3.4/enum.pyi index 1501be27450e..f31d475afb45 100644 --- a/stdlib/3.4/enum.pyi +++ b/stdlib/3.4/enum.pyi @@ -1,15 +1,19 @@ import sys -from typing import List, Any, TypeVar, Union, Iterable, Iterator, TypeVar, Generic, Type, Sized, Reversible, Container, Mapping +from typing import List, Any, TypeVar, Union, Iterable, Iterator, Type, Sized, Reversible, Container, Mapping, Optional from abc import ABCMeta _T = TypeVar('_T', bound=Enum) +_T2 = TypeVar('_T2', bound=object) _S = TypeVar('_S', bound=Type[Enum]) +NamesType = Union[str, Iterable[Iterable[Any]], Mapping[str, Any]] + # Note: EnumMeta actually subclasses type directly, not ABCMeta. # This is a temporary workaround to allow multiple creation of enums with builtins # such as str as mixins, which due to the handling of ABCs of builtin types, cause # spurious inconsistent metaclass structure. See #1595. class EnumMeta(ABCMeta, Iterable[Enum], Sized, Reversible[Enum], Container[Enum]): + def __call__(cls, value: str, names: Optional[NamesType], module: Optional[str], qualname: Optional[str], type: Optional[Type[_T2]], start: int=1) -> Type[_T]: ... def __iter__(self: Type[_T]) -> Iterator[_T]: ... def __reversed__(self: Type[_T]) -> Iterator[_T]: ... def __contains__(self, member: Any) -> bool: ...