Skip to content

Commit 53e3e03

Browse files
committed
Add timedelta as possible freq parameter type to date_range() and bdate_range()
1 parent 95885b8 commit 53e3e03

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

pandas-stubs/core/indexes/datetimes.pyi

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import tzinfo
1+
from datetime import timedelta, tzinfo
22
from typing import overload
33

44
import numpy as np
@@ -90,7 +90,7 @@ def date_range(
9090
start: str | DatetimeLike | None = ...,
9191
end: str | DatetimeLike | None = ...,
9292
periods: int | None = ...,
93-
freq: str | BaseOffset = ...,
93+
freq: str | timedelta | BaseOffset = ...,
9494
tz: str | tzinfo = ...,
9595
normalize: bool = ...,
9696
name: str | None = ...,
@@ -101,7 +101,7 @@ def bdate_range(
101101
start: str | DatetimeLike | None = ...,
102102
end: str | DatetimeLike | None = ...,
103103
periods: int | None = ...,
104-
freq: str | BaseOffset = ...,
104+
freq: str | timedelta | BaseOffset = ...,
105105
tz: str | tzinfo = ...,
106106
normalize: bool = ...,
107107
name: str | None = ...,

pandas-stubs/core/series.pyi

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from datetime import (
22
date,
3+
datetime,
34
time,
45
)
56
from typing import (
@@ -1218,7 +1219,9 @@ class Series(IndexOpsMixin, NDFrame, Generic[S1]):
12181219
def __rtruediv__(self, other: num | _ListLike | Series[S1]) -> Series: ...
12191220
def __rxor__(self, other: num | _ListLike | Series[S1]) -> Series[_bool]: ...
12201221
@overload
1221-
def __sub__(self, other: Timestamp | TimestampSeries) -> TimedeltaSeries: ...
1222+
def __sub__(
1223+
self, other: Timestamp | datetime | TimestampSeries
1224+
) -> TimedeltaSeries: ...
12221225
@overload
12231226
def __sub__(
12241227
self, other: Timedelta | TimedeltaSeries | TimedeltaIndex

tests/test_timefuncs.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,6 @@ def test_timedeltaindex_accessors() -> None:
458458

459459
def test_some_offsets() -> None:
460460
# GH 222
461-
462461
check(
463462
assert_type(
464463
CustomBusinessDay(calendar=USFederalHolidayCalendar()), CustomBusinessDay
@@ -484,6 +483,19 @@ def test_some_offsets() -> None:
484483
)
485484
# GH 224
486485
check(assert_type(dt.date.today() - Day(), dt.date), dt.date)
486+
# GH 235
487+
check(
488+
assert_type(
489+
pd.date_range("1/1/2022", "2/1/2022", freq=dt.timedelta(days=2)), pd.DatetimeIndex
490+
),
491+
pd.DatetimeIndex,
492+
)
493+
check(
494+
assert_type(
495+
pd.bdate_range("1/1/2022", "2/1/2022", freq=dt.timedelta(days=2)), pd.DatetimeIndex
496+
),
497+
pd.DatetimeIndex,
498+
)
487499

488500

489501
def test_types_to_numpy() -> None:

0 commit comments

Comments
 (0)