This commit is contained in:
Maxim Kurnikov
2019-02-05 16:09:42 +03:00
parent be0b2eebb2
commit e4d2b795e3
6 changed files with 38 additions and 23 deletions

View File

@@ -27,21 +27,23 @@ class OrderedSet(MutableSet[_K]):
class MultiValueDictKeyError(KeyError): ...
class MultiValueDict(MutableMapping[_K, List[_V]]):
_Val = Union[_V, List[_V]]
class MultiValueDict(MutableMapping[_K, _V]):
@overload
def __init__(self, key_to_list_mapping: Iterable[Tuple[_K, List[_V]]] = ...) -> None: ...
def __init__(self, key_to_list_mapping: Iterable[Tuple[_K, _Val]] = ...) -> None: ...
@overload
def __init__(self, key_to_list_mapping: Mapping[_K, List[_V]] = ...) -> None: ...
def __init__(self, key_to_list_mapping: Mapping[_K, _Val] = ...) -> None: ...
def getlist(self, key: _K, default: List[_V] = None) -> List[_V]: ...
def setlist(self, key: _K, list_: List[_V]) -> None: ...
def setlistdefault(self, key: _K, default_list: List[_V] = None) -> List[_V]: ...
def appendlist(self, key: _K, value: _V) -> None: ...
def lists(self) -> Iterable[Tuple[_K, List[_V]]]: ...
def dict(self) -> Dict[_K, List[_V]]: ...
def dict(self) -> Dict[_K, _Val]: ...
# These overrides are needed to convince mypy that this isn't an abstract class
def __delitem__(self, item: _K) -> None: ...
def __getitem__(self, item: _K) -> List[_V]: ...
def __setitem__(self, k: _K, v: List[_V]) -> None: ...
def __getitem__(self, item: _K) -> _Val: ... # type: ignore
def __setitem__(self, k: _K, v: _Val) -> None: ...
def __len__(self) -> int: ...
def __iter__(self) -> Iterator[_K]: ...