Skip to content

Commit 2cc6fa2

Browse files
authored
type freq in shift (#1108)
* type freq in shift * assert return type * frame too * type return as Series[Any] * use just Series * Update tests/test_series.py
1 parent 2802fed commit 2cc6fa2

File tree

4 files changed

+21
-11
lines changed

4 files changed

+21
-11
lines changed

pandas-stubs/core/frame.pyi

+2-1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ from pandas._typing import (
8484
FilePath,
8585
FillnaOptions,
8686
FormattersType,
87+
Frequency,
8788
GroupByObjectNonScalar,
8889
HashableT,
8990
HashableT1,
@@ -855,7 +856,7 @@ class DataFrame(NDFrame, OpsMixin, _GetItemHack):
855856
def shift(
856857
self,
857858
periods: int = ...,
858-
freq=...,
859+
freq: Frequency | dt.timedelta | None = ...,
859860
axis: Axis = ...,
860861
fill_value: Hashable | None = ...,
861862
) -> Self: ...

pandas-stubs/core/series.pyi

+3-2
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ from pandas._typing import (
119119
FilePath,
120120
FillnaOptions,
121121
FloatDtypeArg,
122+
Frequency,
122123
GroupByObjectNonScalar,
123124
HashableT1,
124125
IgnoreRaise,
@@ -1219,10 +1220,10 @@ class Series(IndexOpsMixin[S1], NDFrame):
12191220
def shift(
12201221
self,
12211222
periods: int = ...,
1222-
freq=...,
1223+
freq: Frequency | timedelta | None = ...,
12231224
axis: AxisIndex = ...,
12241225
fill_value: object | None = ...,
1225-
) -> Series[S1]: ...
1226+
) -> Series: ...
12261227
def memory_usage(self, index: _bool = ..., deep: _bool = ...) -> int: ...
12271228
def isin(self, values: Iterable | Series[S1] | dict) -> Series[_bool]: ...
12281229
def between(

tests/test_frame.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -516,10 +516,13 @@ def test_types_sort_values_with_key() -> None:
516516

517517

518518
def test_types_shift() -> None:
519-
df = pd.DataFrame(data={"col1": [1, 1], "col2": [3, 4]})
520-
df.shift()
521-
df.shift(1)
522-
df.shift(-1)
519+
df = pd.DataFrame(
520+
data={"col1": [1, 1], "col2": [3, 4]}, index=pd.date_range("2020", periods=2)
521+
)
522+
check(assert_type(df.shift(), pd.DataFrame), pd.DataFrame)
523+
check(assert_type(df.shift(1), pd.DataFrame), pd.DataFrame)
524+
check(assert_type(df.shift(-1), pd.DataFrame), pd.DataFrame)
525+
check(assert_type(df.shift(freq="1D"), pd.DataFrame), pd.DataFrame)
523526

524527

525528
def test_types_rank() -> None:

tests/test_series.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -416,10 +416,15 @@ def test_types_sort_values_with_key() -> None:
416416

417417

418418
def test_types_shift() -> None:
419-
s = pd.Series([1, 2, 3])
420-
s.shift()
421-
s.shift(axis=0, periods=1)
422-
s.shift(-1, fill_value=0)
419+
s = pd.Series([1, 2, 3], index=pd.date_range("2020", periods=3))
420+
check(assert_type(s.shift(), pd.Series), pd.Series, np.floating)
421+
check(
422+
assert_type(s.shift(axis=0, periods=1), pd.Series),
423+
pd.Series,
424+
np.floating,
425+
)
426+
check(assert_type(s.shift(-1, fill_value=0), pd.Series), pd.Series, np.integer)
427+
check(assert_type(s.shift(freq="1D"), pd.Series), pd.Series, np.integer)
423428

424429

425430
def test_types_rank() -> None:

0 commit comments

Comments
 (0)