Skip to content

Commit 9751bff

Browse files
Fix for inplace methods, tests (#22)
1 parent 7bf9ce3 commit 9751bff

File tree

4 files changed

+26
-10
lines changed

4 files changed

+26
-10
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def list_packages(source_path: str = src_path) -> None:
2121
setup(
2222
name="pandas-stubs",
2323
package_dir={"": src_path},
24-
version="1.0.4.4",
24+
version="1.0.4.5",
2525
description="Type annotations for Pandas",
2626
long_description=(open("README.md").read()
2727
if os.path.exists("README.md") else ""),

tests/snippets/test_frame.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,22 @@ def test_types_sort_index() -> None:
111111
df.sort_index(kind="mergesort")
112112

113113

114+
def test_types_set_index() -> None:
115+
df = pd.DataFrame(data={'col1': [1, 2, 3, 4], 'col2': ['a', 'b', 'c', 'd']}, index=[5, 1, 3, 2])
116+
df.set_index('col1')
117+
df.set_index('col1', drop=False)
118+
df.set_index('col1', append=True)
119+
df.set_index('col1', verify_integrity=True)
120+
df.set_index(['col1', 'col2'])
121+
df.set_index('col1', inplace=True)
122+
123+
124+
def test_types_query() -> None:
125+
df = pd.DataFrame(data={'col1': [1, 2, 3, 4], 'col2': [3, 0, 1, 7]})
126+
df.query("col1 > col2")
127+
df.query("col1 % col2 == 0", inplace=True)
128+
129+
114130
def test_types_sort_values() -> None:
115131
df = pd.DataFrame(data={'col1': [2, 1], 'col2': [3, 4]})
116132
df.sort_values('col1')

third_party/3/pandas/core/frame.pyi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import numpy.ma as np
55
from pandas import datetime
66
from pandas._typing import Axes, Axis, Dtype as Dtype, FilePathOrBuffer, Level, Renamer, Column, Label, FrameOrSeries, \
77
ArrayLike, AnyArrayLike, GoogleCredentials, Scalar, ReplaceMethod, ToReplace, ReplaceValue, Frequency, AxisOption, \
8-
Orientation, Function, AggregationFunction, GroupByObject, GeneralDuplicatesKeepStrategy, InterpolationMethod, NamedCorrelationMethod, \
8+
Orientation, Function, AggregationFunction, GroupByObject, GeneralDuplicatesKeepStrategy, InterpolationMethod, \
99
CorrelationMethod, SortKind, JoinType, FillMethod, ErrorsStrategy, NaSortPosition, FillValue, TimestampMethod
1010
from pandas.core.accessor import CachedAccessor
1111
from pandas.core.base import PandasObject
@@ -118,15 +118,15 @@ class DataFrame(NDFrame):
118118
def transpose(self, *args: Any, copy: bool = ...) -> DataFrame: ...
119119
@property
120120
def T(self) -> DataFrame: ...
121-
def query(self, expr: str, inplace: bool = ..., **kwargs: Any) -> DataFrame: ...
122-
def eval(self, expr: str, inplace: bool = ..., **kwargs: Any) -> Union[np.ndarray, int, float, PandasObject]: ...
121+
def query(self, expr: str, inplace: bool = ..., **kwargs: Any) -> Optional[DataFrame]: ...
122+
def eval(self, expr: str, inplace: bool = ..., **kwargs: Any) -> Union[None, np.ndarray, int, float, PandasObject]: ...
123123
def select_dtypes(self, include: Optional[Sequence[Union[str, Dtype]]] = ..., exclude: Optional[Sequence[Union[str, Dtype]]] = ...) -> DataFrame: ...
124124
def insert(self, loc: int, column: Union[Column, Hashable], value: Union[int, Series, ArrayLike], allow_duplicates: Optional[bool] = ...) -> None: ...
125125
def assign(self, **kwargs: Any) -> DataFrame: ...
126126
def lookup(self, row_labels: Sequence[Any], col_labels: Sequence[Column]) -> np.ndarray: ...
127127
def align(self, other: FrameOrSeries, join: JoinType = ..., axis: AxisOption = ..., level: Level = ..., copy: bool = ..., fill_value: Scalar = ..., method: Optional[FillMethod] = ..., limit: Optional[int] = ..., fill_axis: AxisOption = ..., broadcast_axis: AxisOption = ...) -> DataFrame: ...
128128
def reindex(self, *args: Any, **kwargs: Any) -> DataFrame: ...
129-
def drop(self, labels: Optional[Sequence[Label]] = ..., axis: AxisOption = ..., index: Optional[Sequence[Label]] = ..., columns: Optional[Sequence[Label]] = ..., level: Optional[Level] = ..., inplace: bool = ..., errors: ErrorsStrategy = ...) -> DataFrame: ...
129+
def drop(self, labels: Optional[Sequence[Label]] = ..., axis: AxisOption = ..., index: Optional[Sequence[Label]] = ..., columns: Optional[Sequence[Label]] = ..., level: Optional[Level] = ..., inplace: bool = ..., errors: ErrorsStrategy = ...) -> Optional[DataFrame]: ...
130130
def rename(self, mapper: Optional[Renamer] = ..., *, index: Optional[Renamer] = ..., columns: Optional[Renamer] = ..., axis: Optional[Axis] = ..., copy: bool = ..., inplace: bool = ..., level: Optional[Level] = ..., errors: ErrorsStrategy = ...) -> Optional[DataFrame]: ...
131131
def fillna(self, value: FillValue = ..., method: Optional[FillMethod] = ..., axis: Optional[Axis] = ..., inplace: Optional[bool] = ..., limit: int = ..., downcast: Optional[Dict[Any, Dtype]] = ...) -> Optional[DataFrame]: ...
132132
def replace(self, to_replace: Optional[ToReplace] = ..., value: Optional[ReplaceValue] = ..., inplace: bool = ..., limit: Optional[int] = ..., regex: bool = ..., method: ReplaceMethod = ...) -> DataFrame: ...
@@ -137,7 +137,7 @@ class DataFrame(NDFrame):
137137
def isnull(self) -> DataFrame: ...
138138
def notna(self) -> DataFrame: ...
139139
def notnull(self) -> DataFrame: ...
140-
def dropna(self, axis: AxisOption = ..., how: DropTypes = ..., thresh: Optional[int] = ..., subset: Optional[Any] = ..., inplace: bool = ...) -> DataFrame: ...
140+
def dropna(self, axis: AxisOption = ..., how: DropTypes = ..., thresh: Optional[int] = ..., subset: Optional[Any] = ..., inplace: bool = ...) -> Optional[DataFrame]: ...
141141
def drop_duplicates(self, subset: Optional[Union[Hashable, Sequence[Hashable]]] = ..., keep: GeneralDuplicatesKeepStrategy = ..., inplace: bool = ..., ignore_index: bool = ...) -> Optional[DataFrame]: ...
142142
def duplicated(self, subset: Optional[Union[Hashable, Sequence[Hashable]]] = ..., keep: Union[str, bool] = ...) -> Series: ...
143143
# Parent allowed by to be None - that's the reason for override

third_party/3/pandas/core/generic.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class NDFrame(PandasObject, SelectionMixin, indexing.IndexingMixin):
5858
def squeeze(self, axis: Optional[Any] = ...) -> Any: ...
5959
def swaplevel(self, i: Any = ..., j: Any = ..., axis: Any = ...) -> FrameOrSeries: ...
6060
def rename(self, mapper: Optional[Renamer]=..., *, index: Optional[Renamer]=..., columns: Optional[Renamer]=..., axis: Optional[Axis]=..., copy: bool_t=..., inplace: bool_t=..., level: Optional[Level]=..., errors: ErrorsStrategy=...) -> Optional[FrameOrSeries]: ...
61-
def rename_axis(self, mapper: Any = ..., **kwargs: Any) -> Any: ...
61+
def rename_axis(self, mapper: Any = ..., **kwargs: Any) -> Optional[FrameOrSeries]: ...
6262
def equals(self, other: Any) -> Any: ...
6363
@property
6464
def empty(self) -> bool_t: ...
@@ -98,14 +98,14 @@ class NDFrame(PandasObject, SelectionMixin, indexing.IndexingMixin):
9898
def fillna(self, value: Any = ..., method: Any = ..., axis: Any = ..., inplace: bool_t=..., limit: Any = ..., downcast: Any = ...) -> Optional[FrameOrSeries]: ...
9999
def ffill(self, axis: Any = ..., inplace: bool_t=..., limit: Any = ..., downcast: Any = ...) -> Optional[FrameOrSeries]: ...
100100
def bfill(self, axis: Any = ..., inplace: bool_t=..., limit: Any = ..., downcast: Any = ...) -> Optional[FrameOrSeries]: ...
101-
def replace(self, to_replace: Optional[ToReplace] = ..., value: Optional[ReplaceValue] = ..., inplace: bool_t = ..., limit: Optional[int] = ..., regex: bool_t = ..., method: ReplaceMethod = ...) -> FrameOrSeries: ...
102-
def interpolate(self, method: str = ..., axis: int = ..., limit: Optional[Any] = ..., inplace: bool_t = ..., limit_direction: str = ..., limit_area: Optional[Any] = ..., downcast: Optional[Any] = ..., **kwargs: Any) -> Any: ...
101+
def replace(self, to_replace: Optional[ToReplace] = ..., value: Optional[ReplaceValue] = ..., inplace: bool_t = ..., limit: Optional[int] = ..., regex: bool_t = ..., method: ReplaceMethod = ...) -> Optional[FrameOrSeries]: ...
102+
def interpolate(self, method: str = ..., axis: int = ..., limit: Optional[Any] = ..., inplace: bool_t = ..., limit_direction: str = ..., limit_area: Optional[Any] = ..., downcast: Optional[Any] = ..., **kwargs: Any) -> Optional[FrameOrSeries]: ...
103103
def asof(self, where: Any, subset: Optional[Any] = ...) -> Any: ...
104104
def isna(self) -> FrameOrSeries: ...
105105
def isnull(self) -> FrameOrSeries: ...
106106
def notna(self) -> FrameOrSeries: ...
107107
def notnull(self) -> FrameOrSeries: ...
108-
def clip(self, lower: Any = ..., upper: Any = ..., axis: Any = ..., inplace: bool_t=..., *args: Any, **kwargs: Any) -> FrameOrSeries: ...
108+
def clip(self, lower: Any = ..., upper: Any = ..., axis: Any = ..., inplace: bool_t=..., *args: Any, **kwargs: Any) -> Optional[FrameOrSeries]: ...
109109
def asfreq(self, freq: Any, method: Any = ..., how: Optional[str]=..., normalize: bool_t=..., fill_value: Any = ...) -> FrameOrSeries: ...
110110
def at_time(self, time: Any, asof: bool_t=..., axis: Any = ...) -> FrameOrSeries: ...
111111
def between_time(self, start_time: Any, end_time: Any, include_start: bool_t=..., include_end: bool_t=..., axis: Any = ...) -> FrameOrSeries: ...

0 commit comments

Comments
 (0)