@@ -237,25 +237,18 @@ def get_value(self, series, key):
237
237
know what you're doing
238
238
"""
239
239
240
- if _is_convertible_to_td (key ):
240
+ if isinstance (key , str ):
241
+ try :
242
+ key = Timedelta (key )
243
+ except ValueError :
244
+ raise KeyError (key )
245
+
246
+ if isinstance (key , self ._data ._recognized_scalars ) or key is NaT :
241
247
key = Timedelta (key )
242
248
return self .get_value_maybe_box (series , key )
243
249
244
- try :
245
- value = Index .get_value (self , series , key )
246
- except KeyError :
247
- try :
248
- loc = self ._get_string_slice (key )
249
- return series [loc ]
250
- except (TypeError , ValueError , KeyError ):
251
- pass
252
-
253
- try :
254
- return self .get_value_maybe_box (series , key )
255
- except (TypeError , ValueError , KeyError ):
256
- raise KeyError (key )
257
- else :
258
- return com .maybe_box (self , value , series , key )
250
+ value = Index .get_value (self , series , key )
251
+ return com .maybe_box (self , value , series , key )
259
252
260
253
def get_value_maybe_box (self , series , key : Timedelta ):
261
254
loc = self .get_loc (key )
@@ -288,19 +281,7 @@ def get_loc(self, key, method=None, tolerance=None):
288
281
key = Timedelta (key )
289
282
return Index .get_loc (self , key , method , tolerance )
290
283
291
- try :
292
- return Index .get_loc (self , key , method , tolerance )
293
- except (KeyError , ValueError , TypeError ):
294
- try :
295
- return self ._get_string_slice (key )
296
- except (TypeError , KeyError , ValueError ):
297
- pass
298
-
299
- try :
300
- stamp = Timedelta (key )
301
- return Index .get_loc (self , stamp , method , tolerance )
302
- except (KeyError , ValueError ):
303
- raise KeyError (key )
284
+ return Index .get_loc (self , key , method , tolerance )
304
285
305
286
def _maybe_cast_slice_bound (self , label , side , kind ):
306
287
"""
@@ -330,18 +311,10 @@ def _maybe_cast_slice_bound(self, label, side, kind):
330
311
331
312
return label
332
313
333
- def _get_string_slice (self , key ):
334
- if is_integer (key ) or is_float (key ) or key is NaT :
335
- self ._invalid_indexer ("slice" , key )
336
- loc = self ._partial_td_slice (key )
337
- return loc
338
-
339
- def _partial_td_slice (self , key ):
340
-
314
+ def _get_string_slice (self , key : str , use_lhs : bool = True , use_rhs : bool = True ):
315
+ # TODO: Check for non-True use_lhs/use_rhs
316
+ assert isinstance (key , str ), type (key )
341
317
# given a key, try to figure out a location for a partial slice
342
- if not isinstance (key , str ):
343
- return key
344
-
345
318
raise NotImplementedError
346
319
347
320
def is_type_compatible (self , typ ) -> bool :
0 commit comments