Skip to content

Commit 237977f

Browse files
GH648 Allowing dateoffset weekday from relativedelta (#1010)
* GH648 Allowing dateoffset weekday from relativedelta * Fix lint * GH648 Clean up testing * PR Feedback
1 parent 1bc27e6 commit 237977f

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

pandas-stubs/_libs/tslibs/offsets.pyi

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ from typing import (
1212
overload,
1313
)
1414

15+
from dateutil.relativedelta import weekday as WeekdayClass
1516
import numpy as np
1617
from pandas.core.indexes.datetimes import DatetimeIndex
1718
from typing_extensions import Self
@@ -257,7 +258,7 @@ class DateOffset(RelativeDeltaOffset):
257258
year: int = ...,
258259
month: int = ...,
259260
day: int = ...,
260-
weekday: int = ...,
261+
weekday: int | WeekdayClass = ...,
261262
hour: int = ...,
262263
minute: int = ...,
263264
second: int = ...,

tests/test_timefuncs.py

+45
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@
88
cast,
99
)
1010

11+
from dateutil.relativedelta import (
12+
FR,
13+
MO,
14+
SA,
15+
SU,
16+
TH,
17+
TU,
18+
WE,
19+
)
1120
import numpy as np
1221
from numpy import typing as npt
1322
import pandas as pd
@@ -1284,6 +1293,42 @@ def test_weekofmonth_init():
12841293
)
12851294

12861295

1296+
def test_dateoffset_weekday() -> None:
1297+
"""Check that you can create a `pd.DateOffset` from weekday of int or relativedelta.weekday."""
1298+
check(
1299+
assert_type(pd.offsets.DateOffset(weekday=1), pd.offsets.DateOffset),
1300+
pd.offsets.DateOffset,
1301+
)
1302+
check(
1303+
assert_type(pd.offsets.DateOffset(weekday=MO), pd.offsets.DateOffset),
1304+
pd.offsets.DateOffset,
1305+
)
1306+
check(
1307+
assert_type(pd.offsets.DateOffset(weekday=TU), pd.offsets.DateOffset),
1308+
pd.offsets.DateOffset,
1309+
)
1310+
check(
1311+
assert_type(pd.offsets.DateOffset(weekday=WE), pd.offsets.DateOffset),
1312+
pd.offsets.DateOffset,
1313+
)
1314+
check(
1315+
assert_type(pd.offsets.DateOffset(weekday=TH), pd.offsets.DateOffset),
1316+
pd.offsets.DateOffset,
1317+
)
1318+
check(
1319+
assert_type(pd.offsets.DateOffset(weekday=FR), pd.offsets.DateOffset),
1320+
pd.offsets.DateOffset,
1321+
)
1322+
check(
1323+
assert_type(pd.offsets.DateOffset(weekday=SA), pd.offsets.DateOffset),
1324+
pd.offsets.DateOffset,
1325+
)
1326+
check(
1327+
assert_type(pd.offsets.DateOffset(weekday=SU), pd.offsets.DateOffset),
1328+
pd.offsets.DateOffset,
1329+
)
1330+
1331+
12871332
def test_date_range_unit():
12881333
check(
12891334
assert_type(

0 commit comments

Comments
 (0)