mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-16 00:37:10 +08:00
Fix return types in urllib.request (#2389)
* Tighten return types of URL handlers * urlopen() etc. return a modified HTTPResponse * Add missing methods to HTTPResponse
This commit is contained in:
committed by
Rebecca Chen
parent
d70a6cbcc0
commit
9827132d5b
@@ -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]] = ...,
|
||||
|
||||
Reference in New Issue
Block a user