fix some abstract classes in Python 2 (#2240)

Part of #1476.
This commit is contained in:
Jelle Zijlstra
2018-06-16 16:56:00 -07:00
committed by Ivan Levkivskyi
parent 7c3edba6ce
commit 0393de4bd7
5 changed files with 10 additions and 3 deletions

View File

@@ -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: ...

View File

@@ -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: ...

View File

@@ -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: ...

View File

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

View File

@@ -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: ...