massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stubs / Werkzeug / werkzeug / http.pyi
1 import sys
2 from _typeshed.wsgi import WSGIEnvironment
3 from datetime import datetime, timedelta
4 from typing import Any, Callable, Iterable, Mapping, SupportsInt, Text, Tuple, Type, TypeVar, Union, overload
5
6 from .datastructures import (
7     Accept,
8     Authorization,
9     ContentRange,
10     ETags,
11     Headers,
12     HeaderSet,
13     IfRange,
14     Range,
15     RequestCacheControl,
16     TypeConversionDict,
17     WWWAuthenticate,
18 )
19
20 if sys.version_info >= (3, 0):
21     _Str = str
22     _ToBytes = Union[bytes, bytearray, memoryview, str]
23     _ETagData = Union[bytes, bytearray, memoryview]
24 else:
25     _Str = TypeVar("_Str", str, unicode)
26     _ToBytes = Union[bytes, bytearray, buffer, unicode]
27     _ETagData = Union[str, unicode, bytearray, buffer, memoryview]
28
29 _T = TypeVar("_T")
30 _U = TypeVar("_U")
31
32 HTTP_STATUS_CODES: dict[int, str]
33
34 def wsgi_to_bytes(data: bytes | Text) -> bytes: ...
35 def bytes_to_wsgi(data: bytes) -> str: ...
36 def quote_header_value(value: Any, extra_chars: str = ..., allow_token: bool = ...) -> str: ...
37 def unquote_header_value(value: _Str, is_filename: bool = ...) -> _Str: ...
38 def dump_options_header(header: _Str | None, options: Mapping[_Str, Any]) -> _Str: ...
39 def dump_header(iterable: Iterable[Any] | dict[_Str, Any], allow_token: bool = ...) -> _Str: ...
40 def parse_list_header(value: _Str) -> list[_Str]: ...
41 @overload
42 def parse_dict_header(value: bytes | Text) -> dict[Text, Text | None]: ...
43 @overload
44 def parse_dict_header(value: bytes | Text, cls: Type[_T]) -> _T: ...
45 @overload
46 def parse_options_header(value: None, multiple: bool = ...) -> tuple[str, dict[str, str | None]]: ...
47 @overload
48 def parse_options_header(value: _Str) -> tuple[_Str, dict[_Str, _Str | None]]: ...
49
50 # actually returns Tuple[_Str, dict[_Str, _Str | None], ...]
51 @overload
52 def parse_options_header(value: _Str, multiple: bool = ...) -> Tuple[Any, ...]: ...
53 @overload
54 def parse_accept_header(value: Text | None) -> Accept: ...
55 @overload
56 def parse_accept_header(value: _Str | None, cls: Callable[[list[tuple[str, float]] | None], _T]) -> _T: ...
57 @overload
58 def parse_cache_control_header(
59     value: None | bytes | Text, on_update: Callable[[RequestCacheControl], Any] | None = ...
60 ) -> RequestCacheControl: ...
61 @overload
62 def parse_cache_control_header(
63     value: None | bytes | Text, on_update: _T, cls: Callable[[dict[Text, Text | None], _T], _U]
64 ) -> _U: ...
65 @overload
66 def parse_cache_control_header(value: None | bytes | Text, *, cls: Callable[[dict[Text, Text | None], None], _U]) -> _U: ...
67 def parse_set_header(value: Text, on_update: Callable[[HeaderSet], Any] | None = ...) -> HeaderSet: ...
68 def parse_authorization_header(value: None | bytes | Text) -> Authorization | None: ...
69 def parse_www_authenticate_header(
70     value: None | bytes | Text, on_update: Callable[[WWWAuthenticate], Any] | None = ...
71 ) -> WWWAuthenticate: ...
72 def parse_if_range_header(value: Text | None) -> IfRange: ...
73 def parse_range_header(value: Text | None, make_inclusive: bool = ...) -> Range | None: ...
74 def parse_content_range_header(
75     value: Text | None, on_update: Callable[[ContentRange], Any] | None = ...
76 ) -> ContentRange | None: ...
77 def quote_etag(etag: _Str, weak: bool = ...) -> _Str: ...
78 def unquote_etag(etag: _Str | None) -> tuple[_Str | None, _Str | None]: ...
79 def parse_etags(value: Text | None) -> ETags: ...
80 def generate_etag(data: _ETagData) -> str: ...
81 def parse_date(value: str | None) -> datetime | None: ...
82 def cookie_date(expires: None | float | datetime = ...) -> str: ...
83 def http_date(timestamp: None | float | datetime = ...) -> str: ...
84 def parse_age(value: SupportsInt | None = ...) -> timedelta | None: ...
85 def dump_age(age: None | timedelta | SupportsInt) -> str | None: ...
86 def is_resource_modified(
87     environ: WSGIEnvironment,
88     etag: Text | None = ...,
89     data: _ETagData | None = ...,
90     last_modified: None | Text | datetime = ...,
91     ignore_if_range: bool = ...,
92 ) -> bool: ...
93 def remove_entity_headers(headers: list[tuple[Text, Text]] | Headers, allowed: Iterable[Text] = ...) -> None: ...
94 def remove_hop_by_hop_headers(headers: list[tuple[Text, Text]] | Headers) -> None: ...
95 def is_entity_header(header: Text) -> bool: ...
96 def is_hop_by_hop_header(header: Text) -> bool: ...
97 @overload
98 def parse_cookie(
99     header: None | WSGIEnvironment | Text | bytes, charset: Text = ..., errors: Text = ...
100 ) -> TypeConversionDict[Any, Any]: ...
101 @overload
102 def parse_cookie(
103     header: None | WSGIEnvironment | Text | bytes,
104     charset: Text = ...,
105     errors: Text = ...,
106     cls: Callable[[Iterable[tuple[Text, Text]]], _T] | None = ...,
107 ) -> _T: ...
108 def dump_cookie(
109     key: _ToBytes,
110     value: _ToBytes = ...,
111     max_age: None | float | timedelta = ...,
112     expires: None | Text | float | datetime = ...,
113     path: None | Tuple[Any, ...] | str | bytes = ...,
114     domain: None | str | bytes = ...,
115     secure: bool = ...,
116     httponly: bool = ...,
117     charset: Text = ...,
118     sync_expires: bool = ...,
119 ) -> str: ...
120 def is_byte_range_valid(start: int | None, stop: int | None, length: int | None) -> bool: ...