@@ -43,9 +43,9 @@ cdef inline bint is_definitely_invalid_key(object val):
43
43
or PyList_Check(val) or hasattr (val, ' _data' ))
44
44
45
45
46
- def get_value_at (ndarray arr , object loc ):
46
+ cpdef get_value_at(ndarray arr, object loc, object tz = None ):
47
47
if arr.descr.type_num == NPY_DATETIME:
48
- return Timestamp(util.get_value_at(arr, loc))
48
+ return Timestamp(util.get_value_at(arr, loc), tz = tz )
49
49
elif arr.descr.type_num == NPY_TIMEDELTA:
50
50
return Timedelta(util.get_value_at(arr, loc))
51
51
return util.get_value_at(arr, loc)
@@ -68,12 +68,7 @@ cpdef object get_value_box(ndarray arr, object loc):
68
68
if i >= sz or sz == 0 or i < 0 :
69
69
raise IndexError (' index out of bounds' )
70
70
71
- if arr.descr.type_num == NPY_DATETIME:
72
- return Timestamp(util.get_value_1d(arr, i))
73
- elif arr.descr.type_num == NPY_TIMEDELTA:
74
- return Timedelta(util.get_value_1d(arr, i))
75
- else :
76
- return util.get_value_1d(arr, i)
71
+ return get_value_at(arr, i, tz = None )
77
72
78
73
79
74
# Don't populate hash tables in monotonic indexes larger than this
@@ -114,11 +109,7 @@ cdef class IndexEngine:
114
109
if PySlice_Check(loc) or cnp.PyArray_Check(loc):
115
110
return arr[loc]
116
111
else :
117
- if arr.descr.type_num == NPY_DATETIME:
118
- return Timestamp(util.get_value_at(arr, loc), tz = tz)
119
- elif arr.descr.type_num == NPY_TIMEDELTA:
120
- return Timedelta(util.get_value_at(arr, loc))
121
- return util.get_value_at(arr, loc)
112
+ return get_value_at(arr, loc, tz = tz)
122
113
123
114
cpdef set_value(self , ndarray arr, object key, object value):
124
115
"""
0 commit comments