def serialize(self, value): """Serialize an object. Args: value: The value to serialize. """ if isinstance(value, bytes): # If the object is a byte array, skip serializing it and # use a special metadata to indicate it's raw binary. So # that this object can also be read by Java. return RawSerializedObject(value) else: return self._serialize_to_msgpack(value)
def serialize(self, value): """Serialize an object. Args: value: The value to serialize. """ if isinstance(value, bytes): # If the object is a byte array, skip serializing it and # use a special metadata to indicate it's raw binary. So # that this object can also be read by Java. return RawSerializedObject(value) else: # 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") else: metadata = ray_constants.OBJECT_METADATA_TYPE_PYTHON return self._serialize_to_msgpack(metadata, value)