Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add stubs for HTTP Handler classes in py2/urllib2 & py3/urllib.request #2710

Merged
merged 3 commits into from
Feb 11, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion stdlib/2/httplib.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
# Generated by stubgen and manually massaged a bit.
# Needs lots more work!

from typing import Any, Dict, Optional
from typing import Any, Dict, Optional, Protocol
import mimetools
import ssl

class HTTPMessage(mimetools.Message):
def addcontinue(self, key: str, more: str) -> None: ...
Expand Down Expand Up @@ -38,6 +39,15 @@ class HTTPResponse:
def getheader(self, name, default: Optional[Any] = ...): ...
def getheaders(self): ...

# This is an API stub only for HTTPConnection and HTTPSConnection, as used in
# urllib2.AbstractHTTPHandler.do_open, which takes either the class
# HTTPConnection or the class HTTPSConnection, *not* an instance of either
# class. do_open does not use all of the parameters of HTTPConnection.__init__
# or HTTPSConnection.__init__, so HTTPConnectionProtocol only implements the
# parameters that do_open does use.
class HTTPConnectionProtocol(Protocol):
def __call__(self, host: str, timeout: int = ..., **http_con_args: Any) -> HTTPConnection: ...

class HTTPConnection:
response_class = ... # type: Any
default_port = ... # type: Any
Expand Down
22 changes: 13 additions & 9 deletions stdlib/2/urllib2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import ssl
from typing import Any, AnyStr, Dict, List, Union, Optional, Mapping, Callable, Sequence, Tuple, Type
from urllib import addinfourl
from httplib import HTTPResponse
from httplib import HTTPConnectionProtocol, HTTPResponse

_string = Union[str, unicode]

Expand Down Expand Up @@ -128,19 +128,23 @@ class ProxyDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler):
handler_order = ... # type: int
def http_error_407(self, req, fp, code, msg, headers): ...

class AbstractHTTPHandler(BaseHandler):
class AbstractHTTPHandler(BaseHandler): # undocumented
def __init__(self, debuglevel: int = ...) -> None: ...
def do_request_(self, request): ...
def do_open(self, http_class, req): ... # undocumented
def set_http_debuglevel(self, level: int) -> None: ...
def do_request_(self, request: Request) -> Request: ...
def do_open(self,
http_class: HTTPConnectionProtocol,
req: Request,
**http_conn_args: Optional[Any]) -> addinfourl: ...

class HTTPHandler(AbstractHTTPHandler):
def http_open(self, req): ...
def http_request(self, request): ...
def http_open(self, req: Request) -> addinfourl: ...
def http_request(self, request: Request) -> Request: ... # undocumented

class HTTPSHandler(AbstractHTTPHandler):
def __init__(self, debuglevel: int = ..., context: Optional[Any] = ...): ...
def https_open(self, req): ...
def https_request(self, request): ...
def __init__(self, debuglevel: int = ..., context: Optional[ssl.SSLContext] = ...) -> None: ...
def https_open(self, req: Request) -> addinfourl: ...
def https_request(self, request: Request) -> Request: ... # undocumented

class HTTPCookieProcessor(BaseHandler):
def __init__(self, cookiejar: Optional[Any] = ...): ...
Expand Down
20 changes: 14 additions & 6 deletions stdlib/3/urllib/request.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -157,17 +157,25 @@ class ProxyDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler):
def http_error_407(self, req: Request, fp: IO[str], code: int, msg: int,
hdrs: Mapping[str, str]) -> Optional[_UrlopenRet]: ...

class HTTPHandler(BaseHandler):
def http_open(self, req: Request) -> HTTPResponse: ...
def do_open(self, # undocumented
class AbstractHTTPHandler(BaseHandler): # undocumented
def __init__(self, debuglevel: int = ...) -> None: ...
def set_http_debuglevel(self, level: int) -> None: ...
def do_request_(self, request: Request) -> Request: ...
def do_open(self,
http_class: HTTPConnectionProtocol,
req: Request) -> HTTPResponse: ...
req: Request,
**http_conn_args: Any) -> HTTPResponse: ...

class HTTPHandler(AbstractHTTPHandler):
def http_open(self, req: Request) -> HTTPResponse: ...
def http_request(self, request: Request) -> Request: ... # undocumented

class HTTPSHandler(BaseHandler):
class HTTPSHandler(AbstractHTTPHandler):
def __init__(self, debuglevel: int = ...,
context: Optional[ssl.SSLContext] = ...,
check_hostname: bool = ...) -> None: ...
check_hostname: Optional[bool] = ...) -> None: ...
def https_open(self, req: Request) -> HTTPResponse: ...
def https_request(self, request: Request) -> Request: ... # undocumented

class FileHandler(BaseHandler):
def file_open(self, req: Request) -> addinfourl: ...
Expand Down