Example #1
0
 def _deserialize_operand(operand: kv_pb2.Operand, include_key=False, use_serialize=True):
     if operand.value and len(operand.value) > 0:
         if use_serialize:
             return (_EggRoll.value_serdes.deserialize(operand.key), _EggRoll.value_serdes.deserialize(
                 operand.value)) if include_key else _EggRoll.value_serdes.deserialize(operand.value)
         else:
             return (bytes_to_string(operand.key), operand.value) if include_key else operand.value
     return None
Example #2
0
 def _merge(cursors, use_serialize=True):
     ''' Merge sorted iterators. '''
     entries = []
     for _id, it in enumerate(cursors):
         if it.next():
             key, value = it.item()
             entries.append([key, value, _id, it])
         else:
             it.close()
     heapify(entries)
     while entries:
         key, value, _, it = entry = entries[0]
         if use_serialize:
             yield c_pickle.loads(key), c_pickle.loads(value)
         else:
             yield bytes_to_string(key), value
         if it.next():
             entry[0], entry[1] = it.item()
             heapreplace(entries, entry)
         else:
             _, _, _, it = heappop(entries)
             it.close()
Example #3
0
 def __generate_operand(kvs: Iterable, use_serialize=True):
     for k, v in kvs:
         yield kv_pb2.Operand(key=_EggRoll.value_serdes.serialize(k)
                              if use_serialize else bytes_to_string(k),
                              value=_EggRoll.value_serdes.serialize(v)
                              if use_serialize else v)