diff --git a/stdlib/3/http/client.pyi b/stdlib/3/http/client.pyi index d9fd7bfa1..486b57034 100644 --- a/stdlib/3/http/client.pyi +++ b/stdlib/3/http/client.pyi @@ -104,6 +104,9 @@ if sys.version_info >= (3, 5): def __exit__(self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[types.TracebackType]) -> bool: ... + def info(self) -> email.message.Message: ... + def geturl(self) -> str: ... + def getcode(self) -> int: ... else: class HTTPResponse(io.RawIOBase, BinaryIO): # type: ignore msg = ... # type: HTTPMessage @@ -126,6 +129,9 @@ else: def __exit__(self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[types.TracebackType]) -> bool: ... + def info(self) -> email.message.Message: ... + def geturl(self) -> str: ... + def getcode(self) -> int: ... class HTTPConnection: if sys.version_info >= (3, 7): diff --git a/stdlib/3/urllib/request.pyi b/stdlib/3/urllib/request.pyi index e3a7b4d23..2100c28a6 100644 --- a/stdlib/3/urllib/request.pyi +++ b/stdlib/3/urllib/request.pyi @@ -2,7 +2,7 @@ from typing import ( Any, Callable, ClassVar, Dict, List, IO, Mapping, Optional, Sequence, Tuple, - TypeVar, Union, overload, + TypeVar, Union, overload, NoReturn, ) from http.client import HTTPResponse, HTTPMessage from http.cookiejar import CookieJar @@ -13,8 +13,11 @@ import sys import os _T = TypeVar('_T') -_UrlopenRet = Union[HTTPResponse, addinfourl] +_UrlopenRet = Union[_HTTPResponse, addinfourl] +class _HTTPResponse(HTTPResponse): + url: str + msg: str # type: ignore def urlopen( url: Union[str, Request], data: Optional[bytes] = ..., @@ -155,33 +158,33 @@ class ProxyDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler): hdrs: Mapping[str, str]) -> Optional[_UrlopenRet]: ... class HTTPHandler(BaseHandler): - def http_open(self, req: Request) -> _UrlopenRet: ... + def http_open(self, req: Request) -> HTTPResponse: ... class HTTPSHandler(BaseHandler): def __init__(self, debuglevel: int = ..., context: Optional[ssl.SSLContext] = ..., check_hostname: bool = ...) -> None: ... - def https_open(self, req: Request) -> _UrlopenRet: ... + def https_open(self, req: Request) -> HTTPResponse: ... class FileHandler(BaseHandler): - def file_open(self, req: Request) -> _UrlopenRet: ... + def file_open(self, req: Request) -> addinfourl: ... class DataHandler(BaseHandler): - def data_open(self, req: Request) -> _UrlopenRet: ... + def data_open(self, req: Request) -> addinfourl: ... class FTPHandler(BaseHandler): - def ftp_open(self, req: Request) -> _UrlopenRet: ... + def ftp_open(self, req: Request) -> addinfourl: ... class CacheFTPHandler(FTPHandler): def setTimeout(self, t: float) -> None: ... def setMaxConns(self, m: int) -> None: ... class UnknownHandler(BaseHandler): - def unknown_open(self, req: Request) -> _UrlopenRet: ... + def unknown_open(self, req: Request) -> NoReturn: ... class HTTPErrorProcessor(BaseHandler): - def http_response(self) -> _UrlopenRet: ... - def https_response(self) -> _UrlopenRet: ... + def http_response(self, request, response) -> _UrlopenRet: ... + def https_response(self, request, response) -> _UrlopenRet: ... if sys.version_info >= (3, 6): def urlretrieve(url: str, filename: Optional[Union[str, os.PathLike]] = ...,