|
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