2 from _typeshed import SupportsWrite
23 if sys.version_info >= (3, 8):
24 from typing import SupportsIndex
26 from typing_extensions import SupportsIndex
33 def is_immutable(self) -> NoReturn: ...
34 def iter_multi_items(mapping): ...
35 def native_itermethods(names): ...
37 class ImmutableListMixin(Generic[_V]):
38 def __hash__(self) -> int: ...
39 def __reduce_ex__(self: _D, protocol) -> tuple[Type[_D], list[_V]]: ...
40 def __delitem__(self, key: _V) -> NoReturn: ...
41 def __iadd__(self, other: Any) -> NoReturn: ...
42 def __imul__(self, other: Any) -> NoReturn: ...
43 def __setitem__(self, key: str, value: Any) -> NoReturn: ...
44 def append(self, item: Any) -> NoReturn: ...
45 def remove(self, item: Any) -> NoReturn: ...
46 def extend(self, iterable: Any) -> NoReturn: ...
47 def insert(self, pos: int, value: Any) -> NoReturn: ...
48 def pop(self, index: int = ...) -> NoReturn: ...
49 def reverse(self) -> NoReturn: ...
50 def sort(self, cmp: Any | None = ..., key: Any | None = ..., reverse: Any | None = ...) -> NoReturn: ...
52 class ImmutableList(ImmutableListMixin[_V], List[_V]): ... # type: ignore
54 class ImmutableDictMixin(object):
56 def fromkeys(cls, *args, **kwargs): ...
57 def __reduce_ex__(self, protocol): ...
58 def __hash__(self) -> int: ...
59 def setdefault(self, key, default: Any | None = ...): ...
60 def update(self, *args, **kwargs): ...
61 def pop(self, key, default: Any | None = ...): ...
62 def popitem(self): ...
63 def __setitem__(self, key, value): ...
64 def __delitem__(self, key): ...
67 class ImmutableMultiDictMixin(ImmutableDictMixin):
68 def __reduce_ex__(self, protocol): ...
69 def add(self, key, value): ...
70 def popitemlist(self): ...
71 def poplist(self, key): ...
72 def setlist(self, key, new_list): ...
73 def setlistdefault(self, key, default_list: Any | None = ...): ...
75 class UpdateDictMixin(object):
77 def setdefault(self, key, default: Any | None = ...): ...
78 def pop(self, key, default=...): ...
85 class TypeConversionDict(Dict[_K, _V]):
87 def get(self, key: _K, *, type: None = ...) -> _V | None: ...
89 def get(self, key: _K, default: _D, type: None = ...) -> _V | _D: ...
91 def get(self, key: _K, *, type: Callable[[_V], _R]) -> _R | None: ...
93 def get(self, key: _K, default: _D, type: Callable[[_V], _R]) -> _R | _D: ...
95 class ImmutableTypeConversionDict(ImmutableDictMixin, TypeConversionDict[_K, _V]): # type: ignore
96 def copy(self) -> TypeConversionDict[_K, _V]: ...
97 def __copy__(self) -> ImmutableTypeConversionDict[_K, _V]: ...
100 def __init__(self, multi_dict, method, repr_name, *a, **kw): ...
101 def __iter__(self): ...
103 class MultiDict(TypeConversionDict[_K, _V]):
104 def __init__(self, mapping: Any | None = ...): ...
105 def __getitem__(self, key): ...
106 def __setitem__(self, key, value): ...
107 def add(self, key, value): ...
108 def getlist(self, key, type: Any | None = ...): ...
109 def setlist(self, key, new_list): ...
110 def setdefault(self, key, default: Any | None = ...): ...
111 def setlistdefault(self, key, default_list: Any | None = ...): ...
112 def items(self, multi: bool = ...): ...
116 def values(self): ...
117 def listvalues(self): ...
119 def deepcopy(self, memo: Any | None = ...): ...
120 def to_dict(self, flat: bool = ...): ...
121 def update(self, other_dict): ...
122 def pop(self, key, default=...): ...
123 def popitem(self): ...
124 def poplist(self, key): ...
125 def popitemlist(self): ...
126 def __copy__(self): ...
127 def __deepcopy__(self, memo): ...
134 def __init__(self, omd, key, value): ...
135 def unlink(self, omd): ...
137 class OrderedMultiDict(MultiDict[_K, _V]):
138 def __init__(self, mapping: Any | None = ...): ...
139 def __eq__(self, other): ...
140 def __ne__(self, other): ...
141 def __reduce_ex__(self, protocol): ...
142 def __getitem__(self, key): ...
143 def __setitem__(self, key, value): ...
144 def __delitem__(self, key): ...
147 def values(self): ...
148 def items(self, multi: bool = ...): ...
150 def listvalues(self): ...
151 def add(self, key, value): ...
152 def getlist(self, key, type: Any | None = ...): ...
153 def setlist(self, key, new_list): ...
154 def setlistdefault(self, key, default_list: Any | None = ...): ...
155 def update(self, mapping): ...
156 def poplist(self, key): ...
157 def pop(self, key, default=...): ...
158 def popitem(self): ...
159 def popitemlist(self): ...
161 class Headers(object):
162 def __init__(self, defaults: Any | None = ...): ...
163 def __getitem__(self, key, _get_mode: bool = ...): ...
164 def __eq__(self, other): ...
165 def __ne__(self, other): ...
167 def get(self, key: str, *, type: None = ...) -> str | None: ...
169 def get(self, key: str, default: _D, type: None = ...) -> str | _D: ...
171 def get(self, key: str, *, type: Callable[[str], _R]) -> _R | None: ...
173 def get(self, key: str, default: _D, type: Callable[[str], _R]) -> _R | _D: ...
175 def get(self, key: str, *, as_bytes: bool) -> Any: ...
177 def get(self, key: str, *, type: None, as_bytes: bool) -> Any: ...
179 def get(self, key: str, *, type: Callable[[Any], _R], as_bytes: bool) -> _R | None: ...
181 def get(self, key: str, default: Any, type: None, as_bytes: bool) -> Any: ...
183 def get(self, key: str, default: _D, type: Callable[[Any], _R], as_bytes: bool) -> _R | _D: ...
184 def getlist(self, key, type: Any | None = ..., as_bytes: bool = ...): ...
185 def get_all(self, name): ...
186 def items(self, lower: bool = ...): ...
187 def keys(self, lower: bool = ...): ...
188 def values(self): ...
189 def extend(self, iterable): ...
190 def __delitem__(self, key: Any) -> None: ...
191 def remove(self, key): ...
193 def pop(self, key: int | None = ...) -> str: ... # default is ignored, using it is an error
195 def pop(self, key: str) -> str: ...
197 def pop(self, key: str, default: str) -> str: ...
199 def pop(self, key: str, default: None) -> str | None: ...
200 def popitem(self): ...
201 def __contains__(self, key): ...
203 def __iter__(self): ...
204 def __len__(self): ...
205 def add(self, _key, _value, **kw): ...
206 def add_header(self, _key, _value, **_kw): ...
208 def set(self, _key, _value, **kw): ...
209 def setdefault(self, key, value): ...
210 def __setitem__(self, key, value): ...
211 def to_list(self, charset: Text = ...): ...
212 def to_wsgi_list(self): ...
214 def __copy__(self): ...
216 class ImmutableHeadersMixin:
217 def __delitem__(self, key: str) -> None: ...
218 def __setitem__(self, key, value): ...
220 def add(self, *args, **kwargs): ...
223 def extend(self, iterable): ...
224 def insert(self, pos, value): ...
226 def pop(self, key: int | None = ...) -> str: ... # default is ignored, using it is an error
228 def pop(self, key: str) -> str: ...
230 def pop(self, key: str, default: str) -> str: ...
232 def pop(self, key: str, default: None) -> str | None: ...
233 def popitem(self): ...
234 def setdefault(self, key, default): ...
236 class EnvironHeaders(ImmutableHeadersMixin, Headers):
238 def __init__(self, environ): ...
239 def __eq__(self, other): ...
240 def __getitem__(self, key, _get_mode: bool = ...): ...
241 def __len__(self): ...
242 def __iter__(self): ...
245 class CombinedMultiDict(ImmutableMultiDictMixin, MultiDict[_K, _V]): # type: ignore
246 def __reduce_ex__(self, protocol): ...
248 def __init__(self, dicts: Any | None = ...): ...
250 def fromkeys(cls): ...
251 def __getitem__(self, key): ...
252 def get(self, key, default: Any | None = ..., type: Any | None = ...): ...
253 def getlist(self, key, type: Any | None = ...): ...
256 def items(self, multi: bool = ...): ...
257 def values(self): ...
259 def listvalues(self): ...
261 def to_dict(self, flat: bool = ...): ...
262 def __len__(self): ...
263 def __contains__(self, key): ...
266 class FileMultiDict(MultiDict[_K, _V]):
267 def add_file(self, name, file, filename: Any | None = ..., content_type: Any | None = ...): ...
269 class ImmutableDict(ImmutableDictMixin, Dict[_K, _V]): # type: ignore
271 def __copy__(self): ...
273 class ImmutableMultiDict(ImmutableMultiDictMixin, MultiDict[_K, _V]): # type: ignore
275 def __copy__(self): ...
277 class ImmutableOrderedMultiDict(ImmutableMultiDictMixin, OrderedMultiDict[_K, _V]): # type: ignore
279 def __copy__(self): ...
281 class Accept(ImmutableList[Tuple[str, float]]):
283 def __init__(self, values: None | Accept | Iterable[tuple[str, float]] = ...) -> None: ...
285 def __getitem__(self, key: SupportsIndex) -> tuple[str, float]: ...
287 def __getitem__(self, s: slice) -> list[tuple[str, float]]: ...
289 def __getitem__(self, key: str) -> float: ...
290 def quality(self, key: str) -> float: ...
291 def __contains__(self, value: str) -> bool: ... # type: ignore
292 def index(self, key: str | tuple[str, float]) -> int: ... # type: ignore
293 def find(self, key: str | tuple[str, float]) -> int: ...
294 def values(self) -> Iterator[str]: ...
295 def to_header(self) -> str: ...
297 def best_match(self, matches: Iterable[str], default: None = ...) -> str | None: ...
299 def best_match(self, matches: Iterable[str], default: _D) -> str | _D: ...
301 def best(self) -> str | None: ...
303 class MIMEAccept(Accept):
305 def accept_html(self) -> bool: ...
307 def accept_xhtml(self) -> bool: ...
309 def accept_json(self) -> bool: ...
311 class LanguageAccept(Accept): ...
312 class CharsetAccept(Accept): ...
314 def cache_property(key, empty, type): ...
316 class _CacheControl(UpdateDictMixin, Dict[str, Any]):
323 def __init__(self, values=..., on_update: Any | None = ...): ...
324 def to_header(self): ...
326 class RequestCacheControl(ImmutableDictMixin, _CacheControl): # type: ignore
332 class ResponseCacheControl(_CacheControl):
336 proxy_revalidate: Any
339 class CallbackDict(UpdateDictMixin, Dict[_K, _V]):
341 def __init__(self, initial: Any | None = ..., on_update: Any | None = ...): ...
343 class HeaderSet(MutableSet[str]):
345 def __init__(self, headers: Any | None = ..., on_update: Any | None = ...): ...
346 def add(self, header): ...
347 def remove(self, header): ...
348 def update(self, iterable): ...
349 def discard(self, header): ...
350 def find(self, header): ...
351 def index(self, header): ...
353 def as_set(self, preserve_casing: bool = ...): ...
354 def to_header(self): ...
355 def __getitem__(self, idx): ...
356 def __delitem__(self, idx): ...
357 def __setitem__(self, idx, value): ...
358 def __contains__(self, header): ...
359 def __len__(self): ...
360 def __iter__(self): ...
361 def __nonzero__(self): ...
363 class ETags(Container[str], Iterable[str]):
365 def __init__(self, strong_etags: Any | None = ..., weak_etags: Any | None = ..., star_tag: bool = ...): ...
366 def as_set(self, include_weak: bool = ...): ...
367 def is_weak(self, etag): ...
368 def contains_weak(self, etag): ...
369 def contains(self, etag): ...
370 def contains_raw(self, etag): ...
371 def to_header(self): ...
372 def __call__(self, etag: Any | None = ..., data: Any | None = ..., include_weak: bool = ...): ...
373 def __bool__(self): ...
375 def __iter__(self): ...
376 def __contains__(self, etag): ...
381 def __init__(self, etag: Any | None = ..., date: Any | None = ...): ...
382 def to_header(self): ...
387 def __init__(self, units, ranges): ...
388 def range_for_length(self, length): ...
389 def make_content_range(self, length): ...
390 def to_header(self): ...
391 def to_content_range_header(self, length): ...
399 def __init__(self, units: str | None, start, stop, length: Any | None = ..., on_update: Any | None = ...): ...
400 def set(self, start, stop, length: Any | None = ..., units: str | None = ...): ...
401 def unset(self) -> None: ...
402 def to_header(self): ...
403 def __nonzero__(self): ...
406 class Authorization(ImmutableDictMixin, Dict[str, Any]): # type: ignore
408 def __init__(self, auth_type: str, data: Mapping[str, Any] | None = ...) -> None: ...
410 def username(self) -> str | None: ...
412 def password(self) -> str | None: ...
414 def realm(self) -> str | None: ...
416 def nonce(self) -> str | None: ...
418 def uri(self) -> str | None: ...
420 def nc(self) -> str | None: ...
422 def cnonce(self) -> str | None: ...
424 def response(self) -> str | None: ...
426 def opaque(self) -> str | None: ...
428 def qop(self) -> str | None: ...
430 class WWWAuthenticate(UpdateDictMixin, Dict[str, Any]):
432 def __init__(self, auth_type: Any | None = ..., values: Any | None = ..., on_update: Any | None = ...): ...
433 def set_basic(self, realm: str = ...): ...
434 def set_digest(self, realm, nonce, qop=..., opaque: Any | None = ..., algorithm: Any | None = ..., stale: bool = ...): ...
435 def to_header(self): ...
437 def auth_property(name, doc: Any | None = ...): ...
447 class FileStorage(object):
450 filename: Text | None
454 stream: IO[bytes] | None = ...,
455 filename: None | Text | bytes = ...,
456 name: Text | None = ...,
457 content_type: Text | None = ...,
458 content_length: int | None = ...,
459 headers: Headers | None = ...,
462 def content_type(self) -> Text | None: ...
464 def content_length(self) -> int: ...
466 def mimetype(self) -> str: ...
468 def mimetype_params(self) -> dict[str, str]: ...
469 def save(self, dst: Text | SupportsWrite[bytes], buffer_size: int = ...): ...
470 def close(self) -> None: ...
471 def __nonzero__(self) -> bool: ...
472 def __bool__(self) -> bool: ...
473 def __getattr__(self, name: Text) -> Any: ...
474 def __iter__(self) -> Iterator[bytes]: ...