Skip to content

Commit 37f07f9

Browse files
authored
Add timedelta as possible freq parameter type to date_range() and bdate_range() (#322)
* Add timedelta as possible freq parameter type to date_range() and bdate_range() * Include pd.Timedelta as possible freq for date_range() and bdate_range()
1 parent 7073358 commit 37f07f9

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

pandas-stubs/core/indexes/datetimes.pyi

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
from datetime import tzinfo
1+
from datetime import (
2+
timedelta,
3+
tzinfo,
4+
)
25
from typing import overload
36

47
import numpy as np
@@ -90,7 +93,7 @@ def date_range(
9093
start: str | DatetimeLike | None = ...,
9194
end: str | DatetimeLike | None = ...,
9295
periods: int | None = ...,
93-
freq: str | BaseOffset = ...,
96+
freq: str | timedelta | Timedelta | BaseOffset = ...,
9497
tz: str | tzinfo = ...,
9598
normalize: bool = ...,
9699
name: str | None = ...,
@@ -101,7 +104,7 @@ def bdate_range(
101104
start: str | DatetimeLike | None = ...,
102105
end: str | DatetimeLike | None = ...,
103106
periods: int | None = ...,
104-
freq: str | BaseOffset = ...,
107+
freq: str | timedelta | Timedelta | BaseOffset = ...,
105108
tz: str | tzinfo = ...,
106109
normalize: bool = ...,
107110
name: str | None = ...,

tests/test_timefuncs.py

+29-1
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,6 @@ def test_timedeltaindex_accessors() -> None:
463463

464464
def test_some_offsets() -> None:
465465
# GH 222
466-
467466
check(
468467
assert_type(
469468
CustomBusinessDay(calendar=USFederalHolidayCalendar()), CustomBusinessDay
@@ -489,6 +488,35 @@ def test_some_offsets() -> None:
489488
)
490489
# GH 224
491490
check(assert_type(dt.date.today() - Day(), dt.date), dt.date)
491+
# GH 235
492+
check(
493+
assert_type(
494+
pd.date_range("1/1/2022", "2/1/2022", freq=dt.timedelta(days=2)),
495+
pd.DatetimeIndex,
496+
),
497+
pd.DatetimeIndex,
498+
)
499+
check(
500+
assert_type(
501+
pd.bdate_range("1/1/2022", "2/1/2022", freq=dt.timedelta(days=2)),
502+
pd.DatetimeIndex,
503+
),
504+
pd.DatetimeIndex,
505+
)
506+
check(
507+
assert_type(
508+
pd.date_range("1/1/2022", "2/1/2022", freq=pd.Timedelta(days=5)),
509+
pd.DatetimeIndex,
510+
),
511+
pd.DatetimeIndex,
512+
)
513+
check(
514+
assert_type(
515+
pd.bdate_range("1/1/2022", "2/1/2022", freq=pd.Timedelta(days=5)),
516+
pd.DatetimeIndex,
517+
),
518+
pd.DatetimeIndex,
519+
)
492520

493521

494522
def test_types_to_numpy() -> None:

0 commit comments

Comments
 (0)