77
77
78
78
from pandas .tseries .frequencies import get_period_alias
79
79
from pandas .tseries .offsets import (
80
- BDay ,
81
80
Day ,
82
81
Tick ,
83
82
)
@@ -395,7 +394,9 @@ def _generate_range(
395
394
if isinstance (freq , Tick ):
396
395
i8values = generate_regular_range (start , end , periods , freq )
397
396
else :
398
- xdr = generate_range (start = start , end = end , periods = periods , offset = freq )
397
+ xdr = _generate_range (
398
+ start = start , end = end , periods = periods , offset = freq
399
+ )
399
400
i8values = np .array ([x .value for x in xdr ], dtype = np .int64 )
400
401
401
402
endpoint_tz = start .tz if start is not None else end .tz
@@ -2494,18 +2495,23 @@ def _maybe_localize_point(ts, is_none, is_not_none, freq, tz, ambiguous, nonexis
2494
2495
return ts
2495
2496
2496
2497
2497
- def generate_range (start = None , end = None , periods = None , offset = BDay ()):
2498
+ def _generate_range (
2499
+ start : Timestamp | None ,
2500
+ end : Timestamp | None ,
2501
+ periods : int | None ,
2502
+ offset : BaseOffset ,
2503
+ ):
2498
2504
"""
2499
2505
Generates a sequence of dates corresponding to the specified time
2500
2506
offset. Similar to dateutil.rrule except uses pandas DateOffset
2501
2507
objects to represent time increments.
2502
2508
2503
2509
Parameters
2504
2510
----------
2505
- start : datetime, (default None)
2506
- end : datetime, (default None)
2507
- periods : int, (default None)
2508
- offset : DateOffset, (default BDay())
2511
+ start : Timestamp or None
2512
+ end : Timestamp or None
2513
+ periods : int or None
2514
+ offset : DateOffset,
2509
2515
2510
2516
Notes
2511
2517
-----
@@ -2520,26 +2526,46 @@ def generate_range(start=None, end=None, periods=None, offset=BDay()):
2520
2526
"""
2521
2527
offset = to_offset (offset )
2522
2528
2523
- start = Timestamp (start )
2524
- start = start if start is not NaT else None
2525
- end = Timestamp (end )
2526
- end = end if end is not NaT else None
2529
+ # Argument 1 to "Timestamp" has incompatible type "Optional[Timestamp]";
2530
+ # expected "Union[integer[Any], float, str, date, datetime64]"
2531
+ start = Timestamp (start ) # type: ignore[arg-type]
2532
+ # Non-overlapping identity check (left operand type: "Timestamp", right
2533
+ # operand type: "NaTType")
2534
+ start = start if start is not NaT else None # type: ignore[comparison-overlap]
2535
+ # Argument 1 to "Timestamp" has incompatible type "Optional[Timestamp]";
2536
+ # expected "Union[integer[Any], float, str, date, datetime64]"
2537
+ end = Timestamp (end ) # type: ignore[arg-type]
2538
+ # Non-overlapping identity check (left operand type: "Timestamp", right
2539
+ # operand type: "NaTType")
2540
+ end = end if end is not NaT else None # type: ignore[comparison-overlap]
2527
2541
2528
2542
if start and not offset .is_on_offset (start ):
2529
- start = offset .rollforward (start )
2543
+ # Incompatible types in assignment (expression has type "datetime",
2544
+ # variable has type "Optional[Timestamp]")
2545
+ start = offset .rollforward (start ) # type: ignore[assignment]
2530
2546
2531
2547
elif end and not offset .is_on_offset (end ):
2532
- end = offset .rollback (end )
2548
+ # Incompatible types in assignment (expression has type "datetime",
2549
+ # variable has type "Optional[Timestamp]")
2550
+ end = offset .rollback (end ) # type: ignore[assignment]
2533
2551
2534
- if periods is None and end < start and offset .n >= 0 :
2552
+ # Unsupported operand types for < ("Timestamp" and "None")
2553
+ if periods is None and end < start and offset .n >= 0 : # type: ignore[operator]
2535
2554
end = None
2536
2555
periods = 0
2537
2556
2538
2557
if end is None :
2539
- end = start + (periods - 1 ) * offset
2558
+ # error: No overload variant of "__radd__" of "BaseOffset" matches
2559
+ # argument type "None"
2560
+ end = start + (periods - 1 ) * offset # type: ignore[operator]
2540
2561
2541
2562
if start is None :
2542
- start = end - (periods - 1 ) * offset
2563
+ # error: No overload variant of "__radd__" of "BaseOffset" matches
2564
+ # argument type "None"
2565
+ start = end - (periods - 1 ) * offset # type: ignore[operator]
2566
+
2567
+ start = cast (Timestamp , start )
2568
+ end = cast (Timestamp , end )
2543
2569
2544
2570
cur = start
2545
2571
if offset .n >= 0 :
0 commit comments