diff --git a/stdlib/2/__builtin__.pyi b/stdlib/2/__builtin__.pyi index 05bfc1e09..ca6f15c84 100644 --- a/stdlib/2/__builtin__.pyi +++ b/stdlib/2/__builtin__.pyi @@ -1060,6 +1060,7 @@ class file(BinaryIO): @overload def __init__(self, file: int, mode: str = ..., buffering: int = ...) -> None: ... def __iter__(self) -> Iterator[str]: ... + def next(self) -> str: ... def read(self, n: int = ...) -> str: ... def __enter__(self) -> BinaryIO: ... def __exit__(self, t: Optional[type] = ..., exc: Optional[BaseException] = ..., tb: Optional[Any] = ...) -> bool: ... diff --git a/stdlib/2/builtins.pyi b/stdlib/2/builtins.pyi index 05bfc1e09..ca6f15c84 100644 --- a/stdlib/2/builtins.pyi +++ b/stdlib/2/builtins.pyi @@ -1060,6 +1060,7 @@ class file(BinaryIO): @overload def __init__(self, file: int, mode: str = ..., buffering: int = ...) -> None: ... def __iter__(self) -> Iterator[str]: ... + def next(self) -> str: ... def read(self, n: int = ...) -> str: ... def __enter__(self) -> BinaryIO: ... def __exit__(self, t: Optional[type] = ..., exc: Optional[BaseException] = ..., tb: Optional[Any] = ...) -> bool: ... diff --git a/stdlib/2/cStringIO.pyi b/stdlib/2/cStringIO.pyi index 462e6ae7f..db67cda46 100644 --- a/stdlib/2/cStringIO.pyi +++ b/stdlib/2/cStringIO.pyi @@ -1,12 +1,15 @@ # Stubs for cStringIO (Python 2.7) # See https://docs.python.org/2/library/stringio.html +from abc import ABCMeta from typing import overload, IO, List, Iterable, Iterator, Optional, Union from types import TracebackType # TODO the typing.IO[] generics should be split into input and output. -class InputType(IO[str], Iterator[str]): +# This class isn't actually abstract, but you can't instantiate it +# directly, so we might as well treat it as abstract in the stub. +class InputType(IO[str], Iterator[str], metaclass=ABCMeta): def getvalue(self) -> str: ... def close(self) -> None: ... @property @@ -23,7 +26,8 @@ class InputType(IO[str], Iterator[str]): def next(self) -> str: ... def reset(self) -> None: ... -class OutputType(IO[str], Iterator[str]): + +class OutputType(IO[str], Iterator[str], metaclass=ABCMeta): @property def softspace(self) -> int: ... def getvalue(self) -> str: ... diff --git a/stdlib/2/typing.pyi b/stdlib/2/typing.pyi index be9bf4437..cc314d4fc 100644 --- a/stdlib/2/typing.pyi +++ b/stdlib/2/typing.pyi @@ -348,7 +348,7 @@ class TextIO(IO[unicode]): @abstractmethod def __enter__(self) -> TextIO: ... -class ByteString(Sequence[int]): ... +class ByteString(Sequence[int], metaclass=ABCMeta): ... class Match(Generic[AnyStr]): pos = 0 diff --git a/third_party/2/enum.pyi b/third_party/2/enum.pyi index 9b7b7cbfb..c41677861 100644 --- a/third_party/2/enum.pyi +++ b/third_party/2/enum.pyi @@ -15,6 +15,7 @@ class EnumMeta(ABCMeta, Iterable[Enum], Sized, Reversible[Enum], Container[Enum] def __getitem__(self: Type[_T], name: str) -> _T: ... @property def __members__(self: Type[_T]) -> Mapping[str, _T]: ... + def __len__(self) -> int: ... class Enum(metaclass=EnumMeta): def __new__(cls: Type[_T], value: Any) -> _T: ...