make urllib.response.addinfourl instantiable (#2134)

Fixes #1377 (because HTTPError is a subclass of addinfourl). Also part of #1476.
This commit is contained in:
Jelle Zijlstra
2018-06-11 15:43:53 -07:00
committed by Guido van Rossum
parent c4bf27b835
commit ced5d61bb6

View File

@@ -1,11 +1,41 @@
# private module, we only expose what's needed
from typing import BinaryIO, Mapping, Optional
from typing import BinaryIO, Iterable, List, Mapping, Optional, Type, TypeVar
from types import TracebackType
class addinfourl(BinaryIO):
headers = ... # type: Mapping[str, str]
url = ... # type: str
code = ... # type: int
_AIUT = TypeVar("_AIUT", bound=addbase)
class addbase(BinaryIO):
def __enter__(self: _AIUT) -> _AIUT: ...
def __exit__(self, type: Optional[Type[BaseException]], value: Optional[BaseException], traceback: Optional[TracebackType]) -> bool: ...
def __iter__(self: _AIUT) -> _AIUT: ...
def __next__(self) -> bytes: ...
def close(self) -> None: ...
# These methods don't actually exist, but the class inherits at runtime from
# tempfile._TemporaryFileWrapper, which uses __getattr__ to delegate to the
# underlying file object. To satisfy the BinaryIO interface, we pretend that this
# class has these additional methods.
def fileno(self) -> int: ...
def flush(self) -> None: ...
def isatty(self) -> bool: ...
def read(self, n: int = ...) -> bytes: ...
def readable(self) -> bool: ...
def readline(self, limit: int = ...) -> bytes: ...
def readlines(self, hint: int = ...) -> List[bytes]: ...
def seek(self, offset: int, whence: int = ...) -> int: ...
def seekable(self) -> bool: ...
def tell(self) -> int: ...
def truncate(self, size: Optional[int] = ...) -> int: ...
def writable(self) -> bool: ...
def write(self, s: bytes) -> int: ...
def writelines(self, lines: Iterable[bytes]) -> None: ...
class addinfo(addbase):
headers: Mapping[str, str]
def info(self) -> Mapping[str, str]: ...
class addinfourl(addinfo):
url: str
code: int
def geturl(self) -> str: ...
def getcode(self) -> int: ...