From 53da46b609fcdf94646d82f7d5f1a6ba16d6be6b Mon Sep 17 00:00:00 2001 From: Marco Gorelli Date: Wed, 3 Mar 2021 15:59:27 +0000 Subject: [PATCH 1/4] fixup overloads for reset_index --- pandas/core/frame.py | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index f0f8d813bba96..72b64eb85e613 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -5122,9 +5122,7 @@ def set_index( return frame @overload - # https://github.com/python/mypy/issues/6580 - # Overloaded function signatures 1 and 2 overlap with incompatible return types - def reset_index( # type: ignore[misc] + def reset_index( self, level: Optional[Union[Hashable, Sequence[Hashable]]] = ..., drop: bool = ..., @@ -5137,9 +5135,41 @@ def reset_index( # type: ignore[misc] @overload def reset_index( self, - level: Optional[Union[Hashable, Sequence[Hashable]]] = ..., - drop: bool = ..., - inplace: Literal[True] = ..., + level: Optional[Union[Hashable, Sequence[Hashable]]], + drop: bool, + inplace: Literal[True], + col_level: Hashable = ..., + col_fill: Hashable = ..., + ) -> None: + ... + + @overload + def reset_index( + self, + *, + drop: bool, + inplace: Literal[True], + col_level: Hashable = ..., + col_fill: Hashable = ..., + ) -> None: + ... + + @overload + def reset_index( + self, + *, + level: Optional[Union[Hashable, Sequence[Hashable]]], + inplace: Literal[True], + col_level: Hashable = ..., + col_fill: Hashable = ..., + ) -> None: + ... + + @overload + def reset_index( + self, + *, + inplace: Literal[True], col_level: Hashable = ..., col_fill: Hashable = ..., ) -> None: From 56fd378f2fb91b0d07a803c43addb88a4001cfe7 Mon Sep 17 00:00:00 2001 From: Marco Gorelli Date: Wed, 3 Mar 2021 17:47:39 +0000 Subject: [PATCH 2/4] another overload --- pandas/core/frame.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 72b64eb85e613..393e635f304b6 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -5175,14 +5175,20 @@ def reset_index( ) -> None: ... + @overload def reset_index( self, - level: Optional[Union[Hashable, Sequence[Hashable]]] = None, - drop: bool = False, - inplace: bool = False, - col_level: Hashable = 0, - col_fill: Hashable = "", + level: Optional[Union[Hashable, Sequence[Hashable]]], + drop: bool, + inplace: bool, + col_level: Hashable, + col_fill: Hashable, ) -> Optional[DataFrame]: + ... + + def reset_index( + self, level=None, drop=False, inplace=False, col_level=0, col_fill="" + ): """ Reset the index, or a level of it. From 1b977cea2dd708d2d883385718a209c40a3adfa5 Mon Sep 17 00:00:00 2001 From: Marco Gorelli Date: Thu, 4 Mar 2021 11:34:42 +0000 Subject: [PATCH 3/4] add defaults for bool case --- pandas/core/frame.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 393e635f304b6..dc0f05a5dca91 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -5178,11 +5178,11 @@ def reset_index( @overload def reset_index( self, - level: Optional[Union[Hashable, Sequence[Hashable]]], - drop: bool, - inplace: bool, - col_level: Hashable, - col_fill: Hashable, + level: Optional[Union[Hashable, Sequence[Hashable]]] = ..., + drop: bool = ..., + inplace: bool = ..., + col_level: Hashable = ..., + col_fill: Hashable = ..., ) -> Optional[DataFrame]: ... From 8b404bb01e019a2faddc4da1716ac40acc4b53ca Mon Sep 17 00:00:00 2001 From: Marco Gorelli Date: Tue, 9 Mar 2021 17:37:24 +0000 Subject: [PATCH 4/4] add types back to function signature --- pandas/core/frame.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index bb555427b50a2..98e15a43ee4e3 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -5184,8 +5184,13 @@ def reset_index( ... def reset_index( - self, level=None, drop=False, inplace=False, col_level=0, col_fill="" - ): + self, + level: Optional[Union[Hashable, Sequence[Hashable]]] = None, + drop: bool = False, + inplace: bool = False, + col_level: Hashable = 0, + col_fill: Hashable = "", + ) -> Optional[DataFrame]: """ Reset the index, or a level of it.