From 0b04c44710242064ba7f2fb91a190714a64b9cf8 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 14 Oct 2016 21:08:29 -0700 Subject: [PATCH] Revert last two commits. Reason: https://github.com/python/mypy/issues/328 * Revert "Make fromkeys() take an Iterable instead of a sequence. (#605)" This reverts commit 66e8d4a14f565ea4b4502dcb5c128d5799db8ec4. * Revert "Make dict.fromkeys() a classmethod (which it is). (#604)" This reverts commit 26dfcb6859950e069ef7fd6b79e9a214bf71971a. * Add an explanation for fromkeys() being a staticmethod. --- stdlib/2.7/__builtin__.pyi | 8 ++++---- stdlib/3/builtins.pyi | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/stdlib/2.7/__builtin__.pyi b/stdlib/2.7/__builtin__.pyi index a89bb2fb7..e129e086b 100644 --- a/stdlib/2.7/__builtin__.pyi +++ b/stdlib/2.7/__builtin__.pyi @@ -550,12 +550,12 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]): def viewkeys(self) -> KeysView[_KT]: ... def viewvalues(self) -> ValuesView[_VT]: ... def viewitems(self) -> ItemsView[_KT, _VT]: ... + @staticmethod @overload - @classmethod - def fromkeys(cls, seq: Iterable[_T]) -> Dict[_T, Any]: ... + def fromkeys(seq: Sequence[_T]) -> Dict[_T, Any]: ... # TODO: Actually a class method (mypy/issues#328) + @staticmethod @overload - @classmethod - def fromkeys(cls, seq: Iterable[_T], value: _S) -> Dict[_T, _S]: ... + def fromkeys(seq: Sequence[_T], value: _S) -> Dict[_T, _S]: ... def __len__(self) -> int: ... def __getitem__(self, k: _KT) -> _VT: ... def __setitem__(self, k: _KT, v: _VT) -> None: ... diff --git a/stdlib/3/builtins.pyi b/stdlib/3/builtins.pyi index 70b982c9e..f7c5bf941 100644 --- a/stdlib/3/builtins.pyi +++ b/stdlib/3/builtins.pyi @@ -529,12 +529,12 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]): def keys(self) -> KeysView[_KT]: ... def values(self) -> ValuesView[_VT]: ... def items(self) -> ItemsView[_KT, _VT]: ... + @staticmethod @overload - @classmethod - def fromkeys(cls, seq: Iterable[_T]) -> Dict[_T, Any]: ... + def fromkeys(seq: Sequence[_T]) -> Dict[_T, Any]: ... # TODO: Actually a class method (mypy/issues#328) + @staticmethod @overload - @classmethod - def fromkeys(cls, seq: Iterable[_T], value: _S) -> Dict[_T, _S]: ... + def fromkeys(seq: Sequence[_T], value: _S) -> Dict[_T, _S]: ... def __len__(self) -> int: ... def __getitem__(self, k: _KT) -> _VT: ... def __setitem__(self, k: _KT, v: _VT) -> None: ...