File tree Expand file tree Collapse file tree 3 files changed +13
-0
lines changed
Expand file tree Collapse file tree 3 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ class UInt16Engine(IndexEngine): ...
5454class UInt8Engine (IndexEngine ): ...
5555class ObjectEngine (IndexEngine ): ...
5656class StringEngine (IndexEngine ): ...
57+ class StringObjectEngine (ObjectEngine ): ...
5758class DatetimeEngine (Int64Engine ): ...
5859class TimedeltaEngine (DatetimeEngine ): ...
5960class PeriodEngine (Int64Engine ): ...
Original file line number Diff line number Diff line change @@ -557,6 +557,16 @@ cdef class StringEngine(IndexEngine):
557557 raise KeyError (val)
558558 return str (val)
559559
560+ cdef class StringObjectEngine(ObjectEngine):
561+
562+ cdef _check_type(self , object val):
563+ if isinstance (val, str ):
564+ return val
565+ elif checknull(val):
566+ return np.nan
567+ else :
568+ raise KeyError (val)
569+
560570
561571cdef class DatetimeEngine(Int64Engine):
562572
Original file line number Diff line number Diff line change @@ -876,6 +876,8 @@ def _engine(
876876 # ndarray[Any, Any]]" has no attribute "_ndarray" [union-attr]
877877 target_values = self ._data ._ndarray # type: ignore[union-attr]
878878 # TODO re-enable StringEngine for string dtype
879+ elif is_string_dtype (self .dtype ) and not is_object_dtype (self .dtype ):
880+ return libindex .StringObjectEngine (target_values )
879881
880882 # error: Argument 1 to "ExtensionEngine" has incompatible type
881883 # "ndarray[Any, Any]"; expected "ExtensionArray"
You can’t perform that action at this time.
0 commit comments