def _serialize_to_msgpack(self, value): # Only RayTaskError is possible to be serialized here. We don't # need to deal with other exception types here. if isinstance(value, RayTaskError): metadata = str( ErrorType.Value("TASK_EXECUTION_EXCEPTION")).encode("ascii") value = value.to_bytes() else: metadata = ray_constants.OBJECT_METADATA_TYPE_CROSS_LANGUAGE python_objects = [] def _python_serializer(o): index = len(python_objects) python_objects.append(o) return index msgpack_data = MessagePackSerializer.dumps(value, _python_serializer) if python_objects: metadata = ray_constants.OBJECT_METADATA_TYPE_PYTHON pickle5_serialized_object = \ self._serialize_to_pickle5(metadata, python_objects) else: pickle5_serialized_object = None return MessagePackSerializedObject(metadata, msgpack_data, pickle5_serialized_object)
def _serialize_to_msgpack(self, metadata, value): python_objects = [] def _python_serializer(o): index = len(python_objects) python_objects.append(o) return index msgpack_data = MessagePackSerializer.dumps(value, _python_serializer) if python_objects: pickle5_serialized_object = \ self._serialize_to_pickle5(metadata, python_objects) else: metadata = ray_constants.OBJECT_METADATA_TYPE_CROSS_LANGUAGE pickle5_serialized_object = None return MessagePackSerializedObject(metadata, msgpack_data, pickle5_serialized_object)
def _serialize_to_msgpack(self, value): # Only RayTaskError is possible to be serialized here. We don't # need to deal with other exception types here. contained_object_refs = [] if isinstance(value, RayTaskError): metadata = str( ErrorType.Value("TASK_EXECUTION_EXCEPTION")).encode("ascii") value = value.to_bytes() elif isinstance(value, ray.actor.ActorHandle): # TODO(fyresone): ActorHandle should be serialized via the # custom type feature of cross-language. serialized, actor_handle_id = value._serialization_helper() contained_object_refs.append(actor_handle_id) # Update ref counting for the actor handle metadata = ray_constants.OBJECT_METADATA_TYPE_ACTOR_HANDLE value = serialized else: metadata = ray_constants.OBJECT_METADATA_TYPE_CROSS_LANGUAGE python_objects = [] def _python_serializer(o): index = len(python_objects) python_objects.append(o) return index msgpack_data = MessagePackSerializer.dumps(value, _python_serializer) if python_objects: metadata = ray_constants.OBJECT_METADATA_TYPE_PYTHON pickle5_serialized_object = \ self._serialize_to_pickle5(metadata, python_objects) else: pickle5_serialized_object = None return MessagePackSerializedObject(metadata, msgpack_data, contained_object_refs, pickle5_serialized_object)