|
31 | 31 |
|
32 | 32 | # typing-------------------------------------------------------
|
33 | 33 |
|
34 |
| -from typing import Any, Callable, Mapping, TYPE_CHECKING, Tuple |
| 34 | +from typing import Any, Callable, List, Mapping, TYPE_CHECKING, Tuple, Union, overload |
35 | 35 |
|
36 | 36 | from git.types import Literal, Lit_config_levels, TBD
|
37 | 37 |
|
@@ -164,44 +164,51 @@ def __exit__(self, exception_type: str, exception_value: str, traceback: str) ->
|
164 | 164 | class _OMD(OrderedDict):
|
165 | 165 | """Ordered multi-dict."""
|
166 | 166 |
|
167 |
| - def __setitem__(self, key, value): |
| 167 | + def __setitem__(self, key: str, value: Any) -> None: |
168 | 168 | super(_OMD, self).__setitem__(key, [value])
|
169 | 169 |
|
170 |
| - def add(self, key, value): |
| 170 | + def add(self, key: str, value: Any) -> None: |
171 | 171 | if key not in self:
|
172 | 172 | super(_OMD, self).__setitem__(key, [value])
|
173 |
| - return |
174 |
| - |
| 173 | + return None |
175 | 174 | super(_OMD, self).__getitem__(key).append(value)
|
176 | 175 |
|
177 |
| - def setall(self, key, values): |
| 176 | + def setall(self, key: str, values: Any) -> None: |
178 | 177 | super(_OMD, self).__setitem__(key, values)
|
179 | 178 |
|
180 |
| - def __getitem__(self, key): |
| 179 | + def __getitem__(self, key: str) -> Any: |
181 | 180 | return super(_OMD, self).__getitem__(key)[-1]
|
182 | 181 |
|
183 |
| - def getlast(self, key): |
| 182 | + def getlast(self, key: str) -> Any: |
184 | 183 | return super(_OMD, self).__getitem__(key)[-1]
|
185 | 184 |
|
186 |
| - def setlast(self, key, value): |
| 185 | + def setlast(self, key: str, value: Any) -> None: |
187 | 186 | if key not in self:
|
188 | 187 | super(_OMD, self).__setitem__(key, [value])
|
189 | 188 | return
|
190 | 189 |
|
191 | 190 | prior = super(_OMD, self).__getitem__(key)
|
192 | 191 | prior[-1] = value
|
193 | 192 |
|
194 |
| - def get(self, key, default=None): |
| 193 | + @overload |
| 194 | + def get(self, key: str, default: None = ...) -> None: |
| 195 | + ... |
| 196 | + |
| 197 | + @overload |
| 198 | + def get(self, key: str, default: Any = ...) -> Any: |
| 199 | + ... |
| 200 | + |
| 201 | + def get(self, key: str, default: Union[Any, None] = None) -> Union[Any, None]: |
195 | 202 | return super(_OMD, self).get(key, [default])[-1]
|
196 | 203 |
|
197 |
| - def getall(self, key): |
| 204 | + def getall(self, key: str) -> Any: |
198 | 205 | return super(_OMD, self).__getitem__(key)
|
199 | 206 |
|
200 |
| - def items(self): |
| 207 | + def items(self) -> List[Tuple[str, Any]]: |
201 | 208 | """List of (key, last value for key)."""
|
202 | 209 | return [(k, self[k]) for k in self]
|
203 | 210 |
|
204 |
| - def items_all(self): |
| 211 | + def items_all(self) -> List[Tuple[str, List[Any]]]: |
205 | 212 | """List of (key, list of values for key)."""
|
206 | 213 | return [(k, self.getall(k)) for k in self]
|
207 | 214 |
|
|
0 commit comments