Skip to content

Commit 35f15b8

Browse files
committed
cleanup, simplification, better error message
1 parent c6256de commit 35f15b8

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

pandas/core/arrays/datetimes.py

+6-9
Original file line numberDiff line numberDiff line change
@@ -1698,9 +1698,13 @@ def _generate_regular_range(cls, start, end, periods, freq):
16981698
e = _generate_range_overflow_safe(b, periods, stride, side='start')
16991699
tz = start.tz
17001700
elif end is not None:
1701-
e = Timestamp(end).value + stride
1701+
e = Timestamp(end).value
17021702
b = _generate_range_overflow_safe(e, periods, stride, side='end')
17031703
tz = end.tz
1704+
1705+
# add an additional step to `e` because np.arange(b, e) will
1706+
# not include `e`
1707+
e += stride
17041708
else:
17051709
raise ValueError("at least 'start' or 'end' should be specified "
17061710
"if a 'period' is given.")
@@ -1752,7 +1756,7 @@ def _generate_range_overflow_safe(endpoint, periods, stride,
17521756
i64max = np.iinfo(np.int64).max
17531757
msg = ('Cannot generate range with {side}={endpoint} and '
17541758
'periods={periods}'
1755-
.format(side=side, endpoint=endpoint, periods=periods))
1759+
.format(side=side, endpoint=Timestamp(endpoint), periods=periods))
17561760

17571761
with np.errstate(over="raise"):
17581762
# if periods * strides cannot be multiplied within the *uint64* bounds,
@@ -1772,12 +1776,6 @@ def _generate_range_overflow_safe(endpoint, periods, stride,
17721776
# no chance of not-overflowing
17731777
raise tslib.OutOfBoundsDatetime(msg)
17741778

1775-
elif (side == 'end' and endpoint > i64max and endpoint - stride <= i64max):
1776-
# in _generate_regular_range we added `stride` thereby overflowing
1777-
# the bounds. Adjust to fix this.
1778-
return _generate_range_overflow_safe(endpoint - stride,
1779-
periods - 1, stride, side)
1780-
17811779
# split into smaller pieces
17821780
return _generate_range_recurse(endpoint, periods, stride, side)
17831781

@@ -1849,7 +1847,6 @@ def _generate_range_recurse(endpoint, periods, stride, side):
18491847
mid_periods = periods // 2
18501848
remaining = periods - mid_periods
18511849
assert 0 < remaining < periods, (remaining, periods, endpoint, stride)
1852-
print(periods, mid_periods, endpoint, stride, side)
18531850

18541851
midpoint = _generate_range_overflow_safe(endpoint, mid_periods,
18551852
stride, side)

0 commit comments

Comments
 (0)