From ea2c40cd5286f9ac05d1dbc7a4dfafb99f0a9535 Mon Sep 17 00:00:00 2001 From: Thomas MK Date: Tue, 28 Jun 2022 10:20:42 +0200 Subject: [PATCH] Use Sequence instead of List for drop The advantage is that Sequence is covariant which allows passing in List[str], for example. --- pandas-stubs/core/frame.pyi | 20 ++++++++++---------- tests/test_frame.py | 2 ++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pandas-stubs/core/frame.pyi b/pandas-stubs/core/frame.pyi index 7dd54e7b5..7ca0baf40 100644 --- a/pandas-stubs/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -398,15 +398,15 @@ class DataFrame(NDFrame, OpsMixin): fill_axis: AxisType = ..., broadcast_axis: Optional[AxisType] = ..., ) -> DataFrame: ... - def reindex(**kwargs) -> DataFrame: ... + def reindex(self, **kwargs) -> DataFrame: ... @overload def drop( self, - labels: Hashable | list[Hashable] = ..., + labels: Hashable | Sequence[Hashable] = ..., *, axis: Axis = ..., - index: Hashable | list[Hashable] = ..., - columns: Hashable | list[Hashable] = ..., + index: Hashable | Sequence[Hashable] = ..., + columns: Hashable | Sequence[Hashable] = ..., level: Optional[Level] = ..., inplace: Literal[True], errors: IgnoreRaise = ..., @@ -414,11 +414,11 @@ class DataFrame(NDFrame, OpsMixin): @overload def drop( self, - labels: Hashable | list[Hashable] = ..., + labels: Hashable | Sequence[Hashable] = ..., *, axis: Axis = ..., - index: Hashable | list[Hashable] = ..., - columns: Hashable | list[Hashable] = ..., + index: Hashable | Sequence[Hashable] = ..., + columns: Hashable | Sequence[Hashable] = ..., level: Optional[Level] = ..., inplace: Literal[False] = ..., errors: IgnoreRaise = ..., @@ -426,11 +426,11 @@ class DataFrame(NDFrame, OpsMixin): @overload def drop( self, - labels: Hashable | list[Hashable] = ..., + labels: Hashable | Sequence[Hashable] = ..., *, axis: Axis = ..., - index: Hashable | list[Hashable] = ..., - columns: Hashable | list[Hashable] = ..., + index: Hashable | Sequence[Hashable] = ..., + columns: Hashable | Sequence[Hashable] = ..., level: Optional[Level] = ..., inplace: bool = ..., errors: IgnoreRaise = ..., diff --git a/tests/test_frame.py b/tests/test_frame.py index 5b1582a1a..4b18c27e8 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -200,6 +200,8 @@ def test_types_drop() -> None: res6: pd.DataFrame = df.drop(index=1) res7: pd.DataFrame = df.drop(labels=0) res8: None = df.drop([0, 0], inplace=True) + to_drop: List[str] = ["col1"] + res9: pd.DataFrame = df.drop(columns=to_drop) def test_types_dropna() -> None: