Skip to content

Commit fc7afb7

Browse files
committed
REF: expose is_definitely_invalid_key()
1 parent 9303315 commit fc7afb7

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

pandas/_libs/index.pyx

+8-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ from cpython.slice cimport PySlice_Check
2828
cdef int64_t iNaT = util.get_nat()
2929

3030

31-
cdef inline is_definitely_invalid_key(object val):
31+
cdef inline _is_definitely_invalid_key(object val):
3232
if PyTuple_Check(val):
3333
try:
3434
hash(val)
@@ -40,6 +40,10 @@ cdef inline is_definitely_invalid_key(object val):
4040
or PyList_Check(val) or hasattr(val, '_data'))
4141

4242

43+
def is_definitely_invalid_key(val):
44+
return _is_definitely_invalid_key(val)
45+
46+
4347
def get_value_at(ndarray arr, object loc):
4448
if arr.descr.type_num == NPY_DATETIME:
4549
return Timestamp(util.get_value_at(arr, loc))
@@ -138,7 +142,7 @@ cdef class IndexEngine:
138142
util.set_value_at(arr, loc, value)
139143

140144
cpdef get_loc(self, object val):
141-
if is_definitely_invalid_key(val):
145+
if _is_definitely_invalid_key(val):
142146
raise TypeError("'{val}' is an invalid key".format(val=val))
143147

144148
if self.over_size_threshold and self.is_monotonic_increasing:
@@ -441,7 +445,7 @@ cdef class DatetimeEngine(Int64Engine):
441445
return algos.is_monotonic_int64(values, timelike=True)
442446

443447
cpdef get_loc(self, object val):
444-
if is_definitely_invalid_key(val):
448+
if _is_definitely_invalid_key(val):
445449
raise TypeError
446450

447451
# Welcome to the spaghetti factory
@@ -645,7 +649,7 @@ cdef class MultiIndexHashEngine(ObjectEngine):
645649
return algos.pad_object(values, other, limit=limit)
646650

647651
cpdef get_loc(self, object val):
648-
if is_definitely_invalid_key(val):
652+
if _is_definitely_invalid_key(val):
649653
raise TypeError("'{val}' is an invalid key".format(val=val))
650654

651655
self._ensure_mapping_populated()

0 commit comments

Comments
 (0)