1
1
from __future__ import annotations
2
2
3
- from datetime import (
4
- date ,
5
- datetime ,
6
- time ,
7
- timedelta ,
8
- tzinfo ,
9
- )
3
+ import datetime as dt
10
4
import operator
11
5
from typing import (
12
6
TYPE_CHECKING ,
@@ -257,7 +251,7 @@ def _engine_type(self) -> type[libindex.DatetimeEngine]:
257
251
258
252
_data : DatetimeArray
259
253
inferred_freq : str | None
260
- tz : tzinfo | None
254
+ tz : dt . tzinfo | None
261
255
262
256
# --------------------------------------------------------------------
263
257
# methods that dispatch to DatetimeArray and wrap result
@@ -514,7 +508,7 @@ def snap(self, freq: Frequency = "S") -> DatetimeIndex:
514
508
# --------------------------------------------------------------------
515
509
# Indexing Methods
516
510
517
- def _parsed_string_to_bounds (self , reso : Resolution , parsed : datetime ):
511
+ def _parsed_string_to_bounds (self , reso : Resolution , parsed : dt . datetime ):
518
512
"""
519
513
Calculate datetime bounds for parsed time string and its resolution.
520
514
@@ -604,13 +598,13 @@ def get_loc(self, key, method=None, tolerance=None):
604
598
605
599
key = self ._maybe_cast_for_get_loc (key )
606
600
607
- elif isinstance (key , timedelta ):
601
+ elif isinstance (key , dt . timedelta ):
608
602
# GH#20464
609
603
raise TypeError (
610
604
f"Cannot index { type (self ).__name__ } with { type (key ).__name__ } "
611
605
)
612
606
613
- elif isinstance (key , time ):
607
+ elif isinstance (key , dt . time ):
614
608
if method is not None :
615
609
raise NotImplementedError (
616
610
"cannot yet lookup inexact labels when key is a time object"
@@ -648,7 +642,7 @@ def _maybe_cast_for_get_loc(self, key) -> Timestamp:
648
642
def _maybe_cast_slice_bound (self , label , side : str ):
649
643
650
644
# GH#42855 handle date here instead of get_slice_bound
651
- if isinstance (label , date ) and not isinstance (label , datetime ):
645
+ if isinstance (label , dt . date ) and not isinstance (label , dt . datetime ):
652
646
# Pandas supports slicing with dates, treated as datetimes at midnight.
653
647
# https://github.com/pandas-dev/pandas/issues/31501
654
648
label = Timestamp (label ).to_pydatetime ()
@@ -674,12 +668,12 @@ def slice_indexer(self, start=None, end=None, step=None):
674
668
# For historical reasons DatetimeIndex supports slices between two
675
669
# instances of datetime.time as if it were applying a slice mask to
676
670
# an array of (self.hour, self.minute, self.seconds, self.microsecond).
677
- if isinstance (start , time ) and isinstance (end , time ):
671
+ if isinstance (start , dt . time ) and isinstance (end , dt . time ):
678
672
if step is not None and step != 1 :
679
673
raise ValueError ("Must have step size of 1 with time slices" )
680
674
return self .indexer_between_time (start , end )
681
675
682
- if isinstance (start , time ) or isinstance (end , time ):
676
+ if isinstance (start , dt . time ) or isinstance (end , dt . time ):
683
677
raise KeyError ("Cannot mix time and non-time slice keys" )
684
678
685
679
def check_str_or_none (point ) -> bool :
@@ -1092,6 +1086,6 @@ def bdate_range(
1092
1086
)
1093
1087
1094
1088
1095
- def _time_to_micros (time_obj : time ) -> int :
1089
+ def _time_to_micros (time_obj : dt . time ) -> int :
1096
1090
seconds = time_obj .hour * 60 * 60 + 60 * time_obj .minute + time_obj .second
1097
1091
return 1_000_000 * seconds + time_obj .microsecond
0 commit comments