Improve several stdlib setdefault methods (#9612)

This commit is contained in:
Alex Waygood authored and GitHub committed 2023-01-31 15:39:24 -08:00
1 parent 064f7af176
commit 9e71de0421
5 files changed
+37 -6

No files matched your search

+6 -2
View File
@@ -70,7 +70,7 @@ class WeakValueDictionary(MutableMapping[_KT, _VT]):
def items(self) -> Iterator[tuple[_KT, _VT]]: ... # type: ignore[override]
def itervaluerefs(self) -> Iterator[KeyedRef[_KT, _VT]]: ...
def valuerefs(self) -> list[KeyedRef[_KT, _VT]]: ...
def setdefault(self, key: _KT, default: _VT = ...) -> _VT: ...
def setdefault(self, key: _KT, default: _VT) -> _VT: ... # type: ignore[override]
@overload
def pop(self, key: _KT) -> _VT: ...
@overload
@@ -109,7 +109,11 @@ class WeakKeyDictionary(MutableMapping[_KT, _VT]):
def values(self) -> Iterator[_VT]: ... # type: ignore[override]
def items(self) -> Iterator[tuple[_KT, _VT]]: ... # type: ignore[override]
def keyrefs(self) -> list[ref[_KT]]: ...
def setdefault(self, key: _KT, default: _VT = ...) -> _VT: ...
# Keep WeakKeyDictionary.setdefault in line with MutableMapping.setdefault, modulo positional-only differences
@overload
def setdefault(self: WeakKeyDictionary[_KT, _VT | None], key: _KT, default: None = None) -> _VT: ...
@overload
def setdefault(self, key: _KT, default: _VT) -> _VT: ...
@overload
def pop(self, key: _KT) -> _VT: ...
@overload