Skip to content

Commit e21d96a

Browse files
committedMay 8, 2021
Add types to config.py class _OMD
1 parent 6e331a0 commit e21d96a

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed
 

‎git/config.py

+20-13
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
# typing-------------------------------------------------------
3333

34-
from typing import Any, Callable, Mapping, TYPE_CHECKING, Tuple
34+
from typing import Any, Callable, List, Mapping, TYPE_CHECKING, Tuple, Union, overload
3535

3636
from git.types import Literal, Lit_config_levels, TBD
3737

@@ -164,44 +164,51 @@ def __exit__(self, exception_type: str, exception_value: str, traceback: str) ->
164164
class _OMD(OrderedDict):
165165
"""Ordered multi-dict."""
166166

167-
def __setitem__(self, key, value):
167+
def __setitem__(self, key: str, value: Any) -> None:
168168
super(_OMD, self).__setitem__(key, [value])
169169

170-
def add(self, key, value):
170+
def add(self, key: str, value: Any) -> None:
171171
if key not in self:
172172
super(_OMD, self).__setitem__(key, [value])
173-
return
174-
173+
return None
175174
super(_OMD, self).__getitem__(key).append(value)
176175

177-
def setall(self, key, values):
176+
def setall(self, key: str, values: Any) -> None:
178177
super(_OMD, self).__setitem__(key, values)
179178

180-
def __getitem__(self, key):
179+
def __getitem__(self, key: str) -> Any:
181180
return super(_OMD, self).__getitem__(key)[-1]
182181

183-
def getlast(self, key):
182+
def getlast(self, key: str) -> Any:
184183
return super(_OMD, self).__getitem__(key)[-1]
185184

186-
def setlast(self, key, value):
185+
def setlast(self, key: str, value: Any) -> None:
187186
if key not in self:
188187
super(_OMD, self).__setitem__(key, [value])
189188
return
190189

191190
prior = super(_OMD, self).__getitem__(key)
192191
prior[-1] = value
193192

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]:
195202
return super(_OMD, self).get(key, [default])[-1]
196203

197-
def getall(self, key):
204+
def getall(self, key: str) -> Any:
198205
return super(_OMD, self).__getitem__(key)
199206

200-
def items(self):
207+
def items(self) -> List[Tuple[str, Any]]:
201208
"""List of (key, last value for key)."""
202209
return [(k, self[k]) for k in self]
203210

204-
def items_all(self):
211+
def items_all(self) -> List[Tuple[str, List[Any]]]:
205212
"""List of (key, list of values for key)."""
206213
return [(k, self.getall(k)) for k in self]
207214

0 commit comments

Comments
 (0)
Please sign in to comment.