]> jfr.im git - dlqueue.git/blob - venv/lib/python3.11/site-packages/werkzeug/datastructures/structures.pyi
init: venv aand flask
[dlqueue.git] / venv / lib / python3.11 / site-packages / werkzeug / datastructures / structures.pyi
1 from collections.abc import Callable
2 from collections.abc import Iterable
3 from collections.abc import Iterator
4 from collections.abc import Mapping
5 from typing import Any
6 from typing import Generic
7 from typing import Literal
8 from typing import NoReturn
9 from typing import overload
10 from typing import TypeVar
11
12 from .mixins import (
13 ImmutableDictMixin,
14 ImmutableListMixin,
15 ImmutableMultiDictMixin,
16 UpdateDictMixin,
17 )
18
19 D = TypeVar("D")
20 K = TypeVar("K")
21 T = TypeVar("T")
22 V = TypeVar("V")
23 _CD = TypeVar("_CD", bound="CallbackDict")
24
25 def is_immutable(self: object) -> NoReturn: ...
26 def iter_multi_items(
27 mapping: Mapping[K, V | Iterable[V]] | Iterable[tuple[K, V]]
28 ) -> Iterator[tuple[K, V]]: ...
29
30 class ImmutableList(ImmutableListMixin[V]): ...
31
32 class TypeConversionDict(dict[K, V]):
33 @overload
34 def get(self, key: K, default: None = ..., type: None = ...) -> V | None: ...
35 @overload
36 def get(self, key: K, default: D, type: None = ...) -> D | V: ...
37 @overload
38 def get(self, key: K, default: D, type: Callable[[V], T]) -> D | T: ...
39 @overload
40 def get(self, key: K, type: Callable[[V], T]) -> T | None: ...
41
42 class ImmutableTypeConversionDict(ImmutableDictMixin[K, V], TypeConversionDict[K, V]):
43 def copy(self) -> TypeConversionDict[K, V]: ...
44 def __copy__(self) -> ImmutableTypeConversionDict: ...
45
46 class MultiDict(TypeConversionDict[K, V]):
47 def __init__(
48 self,
49 mapping: Mapping[K, Iterable[V] | V] | Iterable[tuple[K, V]] | None = None,
50 ) -> None: ...
51 def __getitem__(self, item: K) -> V: ...
52 def __setitem__(self, key: K, value: V) -> None: ...
53 def add(self, key: K, value: V) -> None: ...
54 @overload
55 def getlist(self, key: K) -> list[V]: ...
56 @overload
57 def getlist(self, key: K, type: Callable[[V], T] = ...) -> list[T]: ...
58 def setlist(self, key: K, new_list: Iterable[V]) -> None: ...
59 def setdefault(self, key: K, default: V | None = None) -> V: ...
60 def setlistdefault(
61 self, key: K, default_list: Iterable[V] | None = None
62 ) -> list[V]: ...
63 def items(self, multi: bool = False) -> Iterator[tuple[K, V]]: ... # type: ignore
64 def lists(self) -> Iterator[tuple[K, list[V]]]: ...
65 def values(self) -> Iterator[V]: ... # type: ignore
66 def listvalues(self) -> Iterator[list[V]]: ...
67 def copy(self) -> MultiDict[K, V]: ...
68 def deepcopy(self, memo: Any = None) -> MultiDict[K, V]: ...
69 @overload
70 def to_dict(self) -> dict[K, V]: ...
71 @overload
72 def to_dict(self, flat: Literal[False]) -> dict[K, list[V]]: ...
73 def update( # type: ignore
74 self, mapping: Mapping[K, Iterable[V] | V] | Iterable[tuple[K, V]]
75 ) -> None: ...
76 @overload
77 def pop(self, key: K) -> V: ...
78 @overload
79 def pop(self, key: K, default: V | T = ...) -> V | T: ...
80 def popitem(self) -> tuple[K, V]: ...
81 def poplist(self, key: K) -> list[V]: ...
82 def popitemlist(self) -> tuple[K, list[V]]: ...
83 def __copy__(self) -> MultiDict[K, V]: ...
84 def __deepcopy__(self, memo: Any) -> MultiDict[K, V]: ...
85
86 class _omd_bucket(Generic[K, V]):
87 prev: _omd_bucket | None
88 next: _omd_bucket | None
89 key: K
90 value: V
91 def __init__(self, omd: OrderedMultiDict, key: K, value: V) -> None: ...
92 def unlink(self, omd: OrderedMultiDict) -> None: ...
93
94 class OrderedMultiDict(MultiDict[K, V]):
95 _first_bucket: _omd_bucket | None
96 _last_bucket: _omd_bucket | None
97 def __init__(self, mapping: Mapping[K, V] | None = None) -> None: ...
98 def __eq__(self, other: object) -> bool: ...
99 def __getitem__(self, key: K) -> V: ...
100 def __setitem__(self, key: K, value: V) -> None: ...
101 def __delitem__(self, key: K) -> None: ...
102 def keys(self) -> Iterator[K]: ... # type: ignore
103 def __iter__(self) -> Iterator[K]: ...
104 def values(self) -> Iterator[V]: ... # type: ignore
105 def items(self, multi: bool = False) -> Iterator[tuple[K, V]]: ... # type: ignore
106 def lists(self) -> Iterator[tuple[K, list[V]]]: ...
107 def listvalues(self) -> Iterator[list[V]]: ...
108 def add(self, key: K, value: V) -> None: ...
109 @overload
110 def getlist(self, key: K) -> list[V]: ...
111 @overload
112 def getlist(self, key: K, type: Callable[[V], T] = ...) -> list[T]: ...
113 def setlist(self, key: K, new_list: Iterable[V]) -> None: ...
114 def setlistdefault(
115 self, key: K, default_list: Iterable[V] | None = None
116 ) -> list[V]: ...
117 def update( # type: ignore
118 self, mapping: Mapping[K, V] | Iterable[tuple[K, V]]
119 ) -> None: ...
120 def poplist(self, key: K) -> list[V]: ...
121 @overload
122 def pop(self, key: K) -> V: ...
123 @overload
124 def pop(self, key: K, default: V | T = ...) -> V | T: ...
125 def popitem(self) -> tuple[K, V]: ...
126 def popitemlist(self) -> tuple[K, list[V]]: ...
127
128 class CombinedMultiDict(ImmutableMultiDictMixin[K, V], MultiDict[K, V]): # type: ignore
129 dicts: list[MultiDict[K, V]]
130 def __init__(self, dicts: Iterable[MultiDict[K, V]] | None) -> None: ...
131 @classmethod
132 def fromkeys(cls, keys: Any, value: Any = None) -> NoReturn: ...
133 def __getitem__(self, key: K) -> V: ...
134 @overload # type: ignore
135 def get(self, key: K) -> V | None: ...
136 @overload
137 def get(self, key: K, default: V | T = ...) -> V | T: ...
138 @overload
139 def get(
140 self, key: K, default: T | None = None, type: Callable[[V], T] = ...
141 ) -> T | None: ...
142 @overload
143 def getlist(self, key: K) -> list[V]: ...
144 @overload
145 def getlist(self, key: K, type: Callable[[V], T] = ...) -> list[T]: ...
146 def _keys_impl(self) -> set[K]: ...
147 def keys(self) -> set[K]: ... # type: ignore
148 def __iter__(self) -> set[K]: ... # type: ignore
149 def items(self, multi: bool = False) -> Iterator[tuple[K, V]]: ... # type: ignore
150 def values(self) -> Iterator[V]: ... # type: ignore
151 def lists(self) -> Iterator[tuple[K, list[V]]]: ...
152 def listvalues(self) -> Iterator[list[V]]: ...
153 def copy(self) -> MultiDict[K, V]: ...
154 @overload
155 def to_dict(self) -> dict[K, V]: ...
156 @overload
157 def to_dict(self, flat: Literal[False]) -> dict[K, list[V]]: ...
158 def __contains__(self, key: K) -> bool: ... # type: ignore
159 def has_key(self, key: K) -> bool: ...
160
161 class ImmutableDict(ImmutableDictMixin[K, V], dict[K, V]):
162 def copy(self) -> dict[K, V]: ...
163 def __copy__(self) -> ImmutableDict[K, V]: ...
164
165 class ImmutableMultiDict( # type: ignore
166 ImmutableMultiDictMixin[K, V], MultiDict[K, V]
167 ):
168 def copy(self) -> MultiDict[K, V]: ...
169 def __copy__(self) -> ImmutableMultiDict[K, V]: ...
170
171 class ImmutableOrderedMultiDict( # type: ignore
172 ImmutableMultiDictMixin[K, V], OrderedMultiDict[K, V]
173 ):
174 def _iter_hashitems(self) -> Iterator[tuple[int, tuple[K, V]]]: ...
175 def copy(self) -> OrderedMultiDict[K, V]: ...
176 def __copy__(self) -> ImmutableOrderedMultiDict[K, V]: ...
177
178 class CallbackDict(UpdateDictMixin[K, V], dict[K, V]):
179 def __init__(
180 self,
181 initial: Mapping[K, V] | Iterable[tuple[K, V]] | None = None,
182 on_update: Callable[[_CD], None] | None = None,
183 ) -> None: ...
184
185 class HeaderSet(set[str]):
186 _headers: list[str]
187 _set: set[str]
188 on_update: Callable[[HeaderSet], None] | None
189 def __init__(
190 self,
191 headers: Iterable[str] | None = None,
192 on_update: Callable[[HeaderSet], None] | None = None,
193 ) -> None: ...
194 def add(self, header: str) -> None: ...
195 def remove(self, header: str) -> None: ...
196 def update(self, iterable: Iterable[str]) -> None: ... # type: ignore
197 def discard(self, header: str) -> None: ...
198 def find(self, header: str) -> int: ...
199 def index(self, header: str) -> int: ...
200 def clear(self) -> None: ...
201 def as_set(self, preserve_casing: bool = False) -> set[str]: ...
202 def to_header(self) -> str: ...
203 def __getitem__(self, idx: int) -> str: ...
204 def __delitem__(self, idx: int) -> None: ...
205 def __setitem__(self, idx: int, value: str) -> None: ...
206 def __contains__(self, header: str) -> bool: ... # type: ignore
207 def __len__(self) -> int: ...
208 def __iter__(self) -> Iterator[str]: ...