arkouda
arkouda copied to clipboard
Investigate dispatch table for `attach`
I just wanted to note at some point in the future implementing this a dictionary/dispatch table might be worthwhile. Something like
attach_dispatch = {
pdarray.objType.lower(): create_pdarray,
Strings.objType.lower(): Strings.from_return_msg,
Datetime.special_objType.lower(): lambda x: Datetime(create_pdarray(x)),
Timedelta.special_objType.lower(): lambda x: Timedelta(create_pdarray(x)),
IPv4.special_objType.lower(): lambda x: IPv4(create_pdarray(x)),
BitVector.special_objType.lower(): lambda x: BitVector(create_pdarray(x)),
SegArray.objType.lower(): SegArray.from_return_msg,
DataFrame.objType.lower(): DataFrame.from_return_msg,
GroupBy.objType.lower(): GroupBy.from_return_msg,
Categorical.objType.lower(): Categorical.from_return_msg,
Index.objType.lower(): Index.from_return_msg,
MultiIndex.objType.lower(): Index.from_return_msg,
Series.objType.lower(): Series.from_return_msg,
}
rep_msg = json.loads(cast(str, generic_msg(cmd="attach", args={"name": name})))
objtype = rep_msg["objType"].lower()
rtn_obj = attach_dispatch[objtype](rep_msg["create"]) if objtype in attach_dispatch.keys() else None
if rtn_obj is not None:
rtn_obj.registered_name = name
return rtn_obj
I haven't tested this at all, I'm just adding for future reference
Originally posted by @pierce314159 in https://github.com/Bears-R-Us/arkouda/pull/2638#discussion_r1287609472