From 1db761d1db0ad93b3a4f0cb001cc6bd6cc3f5d79 Mon Sep 17 00:00:00 2001 From: Rebecca Chen Date: Thu, 27 Jul 2023 14:32:44 -0700 Subject: [PATCH 1/2] TYP: Add typing.overload signatures to DataFrame.drop_duplicates. This adds overloads so that a type checker can determine whether drop_duplicates returns DataFrame or None based on the value of the `inplace` argument. --- pandas/core/frame.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 75a177f0969ca..6a8233d6078ca 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -6383,6 +6383,39 @@ def dropna( self._update_inplace(result) return None + @overload + def drop_duplicates( + self, + subset: Hashable | Sequence[Hashable] | None = ..., + *, + keep: DropKeep = ..., + inplace: Literal[True], + ignore_index: bool = ..., + ) -> None: + ... + + @overload + def drop_duplicates( + self, + subset: Hashable | Sequence[Hashable] | None = ..., + *, + keep: DropKeep = ..., + inplace: Literal[False] = ..., + ignore_index: bool = ..., + ) -> DataFrame: + ... + + @overload + def drop_duplicates( + self, + subset: Hashable | Sequence[Hashable] | None = ..., + *, + keep: DropKeep = ..., + inplace: bool = ..., + ignore_index: bool = ..., + ) -> DataFrame | None: + ... + def drop_duplicates( self, subset: Hashable | Sequence[Hashable] | None = None, From 916c64631a3775bd898f1fce21b2945e19d03b90 Mon Sep 17 00:00:00 2001 From: Rebecca Chen Date: Thu, 27 Jul 2023 15:04:35 -0700 Subject: [PATCH 2/2] Use 4-space indent. --- pandas/core/frame.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 6a8233d6078ca..f6da6a7cba98d 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -6392,7 +6392,7 @@ def drop_duplicates( inplace: Literal[True], ignore_index: bool = ..., ) -> None: - ... + ... @overload def drop_duplicates( @@ -6403,7 +6403,7 @@ def drop_duplicates( inplace: Literal[False] = ..., ignore_index: bool = ..., ) -> DataFrame: - ... + ... @overload def drop_duplicates( @@ -6414,7 +6414,7 @@ def drop_duplicates( inplace: bool = ..., ignore_index: bool = ..., ) -> DataFrame | None: - ... + ... def drop_duplicates( self,