@@ -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