From ecae01a37d6d5d36affe1355664919f7b212e6a8 Mon Sep 17 00:00:00 2001 From: Martijn Pieters Date: Thu, 26 Apr 2018 03:44:25 +0100 Subject: [PATCH] collections.OrderedDict dict views are reversible (#2079) Add the *View subclasses for OrderedDict use, with appropriate __reversed__ hints. Fixes python/typeshed#2078 --- stdlib/3/collections/__init__.pyi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stdlib/3/collections/__init__.pyi b/stdlib/3/collections/__init__.pyi index cad3de728..e68807c91 100644 --- a/stdlib/3/collections/__init__.pyi +++ b/stdlib/3/collections/__init__.pyi @@ -285,11 +285,18 @@ class Counter(Dict[_T, int], Generic[_T]): _OrderedDictT = TypeVar('_OrderedDictT', bound=OrderedDict) +class _OrderedDictKeysView(KeysView[_KT], Reversible[_KT]): ... +class _OrderedDictItemsView(ItemsView[_KT, _VT], Reversible[Tuple[_KT, _VT]]): ... +class _OrderedDictValuesView(ValuesView[_VT], Reversible[_VT]): ... + class OrderedDict(Dict[_KT, _VT], Reversible[_KT], Generic[_KT, _VT]): def popitem(self, last: bool = ...) -> Tuple[_KT, _VT]: ... def move_to_end(self, key: _KT, last: bool = ...) -> None: ... def copy(self: _OrderedDictT) -> _OrderedDictT: ... def __reversed__(self) -> Iterator[_KT]: ... + def keys(self) -> _OrderedDictKeysView[_KT]: ... + def items(self) -> _OrderedDictItemsView[_KT, _VT]: ... + def values(self) -> _OrderedDictValuesView[_VT]: ... _DefaultDictT = TypeVar('_DefaultDictT', bound=defaultdict)