def dict_to_tro(dict_obj): ''' Converts a dictionary representation into a TranslationRequestObject protobuf. ''' tr_obj = TranslationRequestObject() # TODO: check if we really need "blah" which is questionable ; defined_keys = set(['blah', 'shortname', 'request_id', 'worker', 'owner', 'created', 'ready', 'result', 'source_language', 'target_language']) tr_obj.shortname = dict_obj['shortname'] tr_obj.request_id = dict_obj['request_id'] tr_obj.worker = dict_obj['worker'] tr_obj.owner = dict_obj['owner'] tr_obj.created = dict_obj['created'].isoformat() tr_obj.ready = dict_obj['ready'] if 'result' in dict_obj: result_obj = TranslationRequestMessage() result_obj.request_id = dict_obj['request_id'] result_obj.source_language = dict_obj['source_language'] result_obj.target_language = dict_obj['target_language'] result_obj.source_text = '' result_obj.target_text = dict_obj['result'] # pylint: disable-msg=E1101 for key in set(dict_obj.keys()) - defined_keys: kv_pair = result_obj.packet_data.add() kv_pair.key = key kv_pair.value = dict_obj[key] tr_obj.serialized = b64encode(result_obj.SerializeToString()) else: tr_obj.serialized = '' return tr_obj
def dict_to_tro(dict_obj): """ Converts a dictionary representation into a TranslationRequestObject protobuf. """ tr_obj = TranslationRequestObject() defined_keys = set( [ "blah", "shortname", "request_id", "worker", "owner", "created", "ready", "result", "source_language", "target_language", ] ) tr_obj.shortname = dict_obj["shortname"] tr_obj.request_id = dict_obj["request_id"] tr_obj.worker = dict_obj["worker"] tr_obj.owner = dict_obj["owner"] tr_obj.created = dict_obj["created"].isoformat() tr_obj.ready = dict_obj["ready"] if "result" in dict_obj: result_obj = TranslationRequestMessage() result_obj.request_id = dict_obj["request_id"] result_obj.source_language = dict_obj["source_language"] result_obj.target_language = dict_obj["target_language"] result_obj.source_text = "" result_obj.target_text = dict_obj["result"] for key in set(dict_obj.keys()) - defined_keys: kv_pair = result_obj.packet_data.add() kv_pair.key = key kv_pair.value = dict_obj[key] tr_obj.serialized = b64encode(result_obj.SerializeToString()) else: tr_obj.serialized = "" return tr_obj