massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stdlib / urllib / request.pyi
1 import ssl
2 import sys
3 from _typeshed import StrOrBytesPath
4 from email.message import Message
5 from http.client import HTTPMessage, HTTPResponse, _HTTPConnectionProtocol
6 from http.cookiejar import CookieJar
7 from typing import IO, Any, Callable, ClassVar, Mapping, NoReturn, Pattern, Sequence, Tuple, TypeVar, overload
8 from urllib.error import HTTPError
9 from urllib.response import addclosehook, addinfourl
10
11 _T = TypeVar("_T")
12 _UrlopenRet = Any
13
14 def urlopen(
15     url: str | Request,
16     data: bytes | None = ...,
17     timeout: float | None = ...,
18     *,
19     cafile: str | None = ...,
20     capath: str | None = ...,
21     cadefault: bool = ...,
22     context: ssl.SSLContext | None = ...,
23 ) -> _UrlopenRet: ...
24 def install_opener(opener: OpenerDirector) -> None: ...
25 def build_opener(*handlers: BaseHandler | Callable[[], BaseHandler]) -> OpenerDirector: ...
26
27 if sys.platform == "win32":
28     from nturl2path import pathname2url as pathname2url, url2pathname as url2pathname
29 else:
30     def url2pathname(pathname: str) -> str: ...
31     def pathname2url(pathname: str) -> str: ...
32
33 def getproxies() -> dict[str, str]: ...
34 def parse_http_list(s: str) -> list[str]: ...
35 def parse_keqv_list(l: list[str]) -> dict[str, str]: ...
36
37 if sys.platform == "win32" or sys.platform == "darwin":
38     def proxy_bypass(host: str) -> Any: ...  # undocumented
39
40 else:
41     def proxy_bypass(host: str, proxies: Mapping[str, str] | None = ...) -> Any: ...  # undocumented
42
43 class Request:
44     @property
45     def full_url(self) -> str: ...
46     @full_url.setter
47     def full_url(self, value: str) -> None: ...
48     @full_url.deleter
49     def full_url(self) -> None: ...
50     type: str
51     host: str
52     origin_req_host: str
53     selector: str
54     data: bytes | None
55     headers: dict[str, str]
56     unredirected_hdrs: dict[str, str]
57     unverifiable: bool
58     method: str | None
59     timeout: float | None  # Undocumented, only set after __init__() by OpenerDirector.open()
60     def __init__(
61         self,
62         url: str,
63         data: bytes | None = ...,
64         headers: dict[str, str] = ...,
65         origin_req_host: str | None = ...,
66         unverifiable: bool = ...,
67         method: str | None = ...,
68     ) -> None: ...
69     def get_method(self) -> str: ...
70     def add_header(self, key: str, val: str) -> None: ...
71     def add_unredirected_header(self, key: str, val: str) -> None: ...
72     def has_header(self, header_name: str) -> bool: ...
73     def remove_header(self, header_name: str) -> None: ...
74     def get_full_url(self) -> str: ...
75     def set_proxy(self, host: str, type: str) -> None: ...
76     @overload
77     def get_header(self, header_name: str) -> str | None: ...
78     @overload
79     def get_header(self, header_name: str, default: _T) -> str | _T: ...
80     def header_items(self) -> list[tuple[str, str]]: ...
81     def has_proxy(self) -> bool: ...
82
83 class OpenerDirector:
84     addheaders: list[tuple[str, str]]
85     def add_handler(self, handler: BaseHandler) -> None: ...
86     def open(self, fullurl: str | Request, data: bytes | None = ..., timeout: float | None = ...) -> _UrlopenRet: ...
87     def error(self, proto: str, *args: Any) -> _UrlopenRet: ...
88     def close(self) -> None: ...
89
90 class BaseHandler:
91     handler_order: ClassVar[int]
92     parent: OpenerDirector
93     def add_parent(self, parent: OpenerDirector) -> None: ...
94     def close(self) -> None: ...
95
96 class HTTPDefaultErrorHandler(BaseHandler):
97     def http_error_default(
98         self, req: Request, fp: IO[bytes], code: int, msg: str, hdrs: HTTPMessage
99     ) -> HTTPError: ...  # undocumented
100
101 class HTTPRedirectHandler(BaseHandler):
102     max_redirections: ClassVar[int]  # undocumented
103     max_repeats: ClassVar[int]  # undocumented
104     inf_msg: ClassVar[str]  # undocumented
105     def redirect_request(
106         self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage, newurl: str
107     ) -> Request | None: ...
108     def http_error_301(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
109     def http_error_302(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
110     def http_error_303(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
111     def http_error_307(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
112
113 class HTTPCookieProcessor(BaseHandler):
114     cookiejar: CookieJar
115     def __init__(self, cookiejar: CookieJar | None = ...) -> None: ...
116     def http_request(self, request: Request) -> Request: ...  # undocumented
117     def http_response(self, request: Request, response: HTTPResponse) -> HTTPResponse: ...  # undocumented
118     def https_request(self, request: Request) -> Request: ...  # undocumented
119     def https_response(self, request: Request, response: HTTPResponse) -> HTTPResponse: ...  # undocumented
120
121 class ProxyHandler(BaseHandler):
122     def __init__(self, proxies: dict[str, str] | None = ...) -> None: ...
123     def proxy_open(self, req: Request, proxy: str, type: str) -> _UrlopenRet | None: ...  # undocumented
124     # TODO add a method for every (common) proxy protocol
125
126 class HTTPPasswordMgr:
127     def add_password(self, realm: str, uri: str | Sequence[str], user: str, passwd: str) -> None: ...
128     def find_user_password(self, realm: str, authuri: str) -> tuple[str | None, str | None]: ...
129     def is_suburi(self, base: str, test: str) -> bool: ...  # undocumented
130     def reduce_uri(self, uri: str, default_port: bool = ...) -> str: ...  # undocumented
131
132 class HTTPPasswordMgrWithDefaultRealm(HTTPPasswordMgr):
133     def add_password(self, realm: str | None, uri: str | Sequence[str], user: str, passwd: str) -> None: ...
134     def find_user_password(self, realm: str | None, authuri: str) -> tuple[str | None, str | None]: ...
135
136 class HTTPPasswordMgrWithPriorAuth(HTTPPasswordMgrWithDefaultRealm):
137     def add_password(
138         self, realm: str | None, uri: str | Sequence[str], user: str, passwd: str, is_authenticated: bool = ...
139     ) -> None: ...
140     def update_authenticated(self, uri: str | Sequence[str], is_authenticated: bool = ...) -> None: ...
141     def is_authenticated(self, authuri: str) -> bool: ...
142
143 class AbstractBasicAuthHandler:
144     rx: ClassVar[Pattern[str]]  # undocumented
145     passwd: HTTPPasswordMgr
146     add_password: Callable[[str, str | Sequence[str], str, str], None]
147     def __init__(self, password_mgr: HTTPPasswordMgr | None = ...) -> None: ...
148     def http_error_auth_reqed(self, authreq: str, host: str, req: Request, headers: HTTPMessage) -> None: ...
149     def http_request(self, req: Request) -> Request: ...  # undocumented
150     def http_response(self, req: Request, response: HTTPResponse) -> HTTPResponse: ...  # undocumented
151     def https_request(self, req: Request) -> Request: ...  # undocumented
152     def https_response(self, req: Request, response: HTTPResponse) -> HTTPResponse: ...  # undocumented
153     def retry_http_basic_auth(self, host: str, req: Request, realm: str) -> _UrlopenRet | None: ...  # undocumented
154
155 class HTTPBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler):
156     auth_header: ClassVar[str]  # undocumented
157     def http_error_401(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
158
159 class ProxyBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler):
160     auth_header: ClassVar[str]
161     def http_error_407(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
162
163 class AbstractDigestAuthHandler:
164     def __init__(self, passwd: HTTPPasswordMgr | None = ...) -> None: ...
165     def reset_retry_count(self) -> None: ...
166     def http_error_auth_reqed(self, auth_header: str, host: str, req: Request, headers: HTTPMessage) -> None: ...
167     def retry_http_digest_auth(self, req: Request, auth: str) -> _UrlopenRet | None: ...
168     def get_cnonce(self, nonce: str) -> str: ...
169     def get_authorization(self, req: Request, chal: Mapping[str, str]) -> str: ...
170     def get_algorithm_impls(self, algorithm: str) -> tuple[Callable[[str], str], Callable[[str, str], str]]: ...
171     def get_entity_digest(self, data: bytes | None, chal: Mapping[str, str]) -> str | None: ...
172
173 class HTTPDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler):
174     auth_header: ClassVar[str]  # undocumented
175     def http_error_401(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
176
177 class ProxyDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler):
178     auth_header: ClassVar[str]  # undocumented
179     def http_error_407(self, req: Request, fp: IO[bytes], code: int, msg: str, headers: HTTPMessage) -> _UrlopenRet | None: ...
180
181 class AbstractHTTPHandler(BaseHandler):  # undocumented
182     def __init__(self, debuglevel: int = ...) -> None: ...
183     def set_http_debuglevel(self, level: int) -> None: ...
184     def do_request_(self, request: Request) -> Request: ...
185     def do_open(self, http_class: _HTTPConnectionProtocol, req: Request, **http_conn_args: Any) -> HTTPResponse: ...
186
187 class HTTPHandler(AbstractHTTPHandler):
188     def http_open(self, req: Request) -> HTTPResponse: ...
189     def http_request(self, request: Request) -> Request: ...  # undocumented
190
191 class HTTPSHandler(AbstractHTTPHandler):
192     def __init__(
193         self, debuglevel: int = ..., context: ssl.SSLContext | None = ..., check_hostname: bool | None = ...
194     ) -> None: ...
195     def https_open(self, req: Request) -> HTTPResponse: ...
196     def https_request(self, request: Request) -> Request: ...  # undocumented
197
198 class FileHandler(BaseHandler):
199     names: ClassVar[Tuple[str, ...] | None]  # undocumented
200     def file_open(self, req: Request) -> addinfourl: ...
201     def get_names(self) -> Tuple[str, ...]: ...  # undocumented
202     def open_local_file(self, req: Request) -> addinfourl: ...  # undocumented
203
204 class DataHandler(BaseHandler):
205     def data_open(self, req: Request) -> addinfourl: ...
206
207 class ftpwrapper:  # undocumented
208     def __init__(
209         self, user: str, passwd: str, host: str, port: int, dirs: str, timeout: float | None = ..., persistent: bool = ...
210     ) -> None: ...
211     def close(self) -> None: ...
212     def endtransfer(self) -> None: ...
213     def file_close(self) -> None: ...
214     def init(self) -> None: ...
215     def real_close(self) -> None: ...
216     def retrfile(self, file: str, type: str) -> tuple[addclosehook, int]: ...
217
218 class FTPHandler(BaseHandler):
219     def ftp_open(self, req: Request) -> addinfourl: ...
220     def connect_ftp(
221         self, user: str, passwd: str, host: str, port: int, dirs: str, timeout: float
222     ) -> ftpwrapper: ...  # undocumented
223
224 class CacheFTPHandler(FTPHandler):
225     def setTimeout(self, t: float) -> None: ...
226     def setMaxConns(self, m: int) -> None: ...
227     def check_cache(self) -> None: ...  # undocumented
228     def clear_cache(self) -> None: ...  # undocumented
229     def connect_ftp(
230         self, user: str, passwd: str, host: str, port: int, dirs: str, timeout: float
231     ) -> ftpwrapper: ...  # undocumented
232
233 class UnknownHandler(BaseHandler):
234     def unknown_open(self, req: Request) -> NoReturn: ...
235
236 class HTTPErrorProcessor(BaseHandler):
237     def http_response(self, request: Request, response: HTTPResponse) -> _UrlopenRet: ...
238     def https_response(self, request: Request, response: HTTPResponse) -> _UrlopenRet: ...
239
240 def urlretrieve(
241     url: str,
242     filename: StrOrBytesPath | None = ...,
243     reporthook: Callable[[int, int, int], None] | None = ...,
244     data: bytes | None = ...,
245 ) -> tuple[str, HTTPMessage]: ...
246 def urlcleanup() -> None: ...
247
248 class URLopener:
249     version: ClassVar[str]
250     def __init__(self, proxies: dict[str, str] | None = ..., **x509: str) -> None: ...
251     def open(self, fullurl: str, data: bytes | None = ...) -> _UrlopenRet: ...
252     def open_unknown(self, fullurl: str, data: bytes | None = ...) -> _UrlopenRet: ...
253     def retrieve(
254         self,
255         url: str,
256         filename: str | None = ...,
257         reporthook: Callable[[int, int, int], None] | None = ...,
258         data: bytes | None = ...,
259     ) -> tuple[str, Message | None]: ...
260     def addheader(self, *args: tuple[str, str]) -> None: ...  # undocumented
261     def cleanup(self) -> None: ...  # undocumented
262     def close(self) -> None: ...  # undocumented
263     def http_error(
264         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage, data: bytes | None = ...
265     ) -> _UrlopenRet: ...  # undocumented
266     def http_error_default(
267         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage
268     ) -> _UrlopenRet: ...  # undocumented
269     def open_data(self, url: str, data: bytes | None = ...) -> addinfourl: ...  # undocumented
270     def open_file(self, url: str) -> addinfourl: ...  # undocumented
271     def open_ftp(self, url: str) -> addinfourl: ...  # undocumented
272     def open_http(self, url: str, data: bytes | None = ...) -> _UrlopenRet: ...  # undocumented
273     def open_https(self, url: str, data: bytes | None = ...) -> _UrlopenRet: ...  # undocumented
274     def open_local_file(self, url: str) -> addinfourl: ...  # undocumented
275     def open_unknown_proxy(self, proxy: str, fullurl: str, data: bytes | None = ...) -> None: ...  # undocumented
276
277 class FancyURLopener(URLopener):
278     def prompt_user_passwd(self, host: str, realm: str) -> tuple[str, str]: ...
279     def get_user_passwd(self, host: str, realm: str, clear_cache: int = ...) -> tuple[str, str]: ...  # undocumented
280     def http_error_301(
281         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage, data: bytes | None = ...
282     ) -> _UrlopenRet | addinfourl | None: ...  # undocumented
283     def http_error_302(
284         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage, data: bytes | None = ...
285     ) -> _UrlopenRet | addinfourl | None: ...  # undocumented
286     def http_error_303(
287         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage, data: bytes | None = ...
288     ) -> _UrlopenRet | addinfourl | None: ...  # undocumented
289     def http_error_307(
290         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage, data: bytes | None = ...
291     ) -> _UrlopenRet | addinfourl | None: ...  # undocumented
292     def http_error_401(
293         self,
294         url: str,
295         fp: IO[bytes],
296         errcode: int,
297         errmsg: str,
298         headers: HTTPMessage,
299         data: bytes | None = ...,
300         retry: bool = ...,
301     ) -> _UrlopenRet | None: ...  # undocumented
302     def http_error_407(
303         self,
304         url: str,
305         fp: IO[bytes],
306         errcode: int,
307         errmsg: str,
308         headers: HTTPMessage,
309         data: bytes | None = ...,
310         retry: bool = ...,
311     ) -> _UrlopenRet | None: ...  # undocumented
312     def http_error_default(
313         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage
314     ) -> addinfourl: ...  # undocumented
315     def redirect_internal(
316         self, url: str, fp: IO[bytes], errcode: int, errmsg: str, headers: HTTPMessage, data: bytes | None
317     ) -> _UrlopenRet | None: ...  # undocumented
318     def retry_http_basic_auth(self, url: str, realm: str, data: bytes | None = ...) -> _UrlopenRet | None: ...  # undocumented
319     def retry_https_basic_auth(self, url: str, realm: str, data: bytes | None = ...) -> _UrlopenRet | None: ...  # undocumented
320     def retry_proxy_http_basic_auth(
321         self, url: str, realm: str, data: bytes | None = ...
322     ) -> _UrlopenRet | None: ...  # undocumented
323     def retry_proxy_https_basic_auth(
324         self, url: str, realm: str, data: bytes | None = ...
325     ) -> _UrlopenRet | None: ...  # undocumented