docs: def _decode(self, entries, entry_type):
          '''
          Takes the list of rows returned by sqlite.
          Returns rows in readable format. Transforms tuples into dictionaries,
          and appends information about entry type to the rows.
          '''
  
          def decode_blobs(row):
              row = list(row)
              for index, value in zip(range(len(row)), row):
                  if isinstance(value, types.BufferType):
                      value = str(value)
                      if self._encoding:
                          value = value.decode(self._encoding)
                      row[index] = value
              return row
  
          decoded = map(decode_blobs, entries)
          if entry_type == 'log':
              mapping = ['hostname', 'message', 'level', 'category',
                         'log_name', 'file_path', 'line_num', 'timestamp']
          elif entry_type == 'journal':
              mapping = ['agent_id', 'instance_id', 'journal_id', 'function_id',
                         'fiber_id', 'fiber_depth', 'args', 'kwargs',
                         'side_effects', 'result', 'timestamp']
          else:
              raise ValueError('Unknown entry_type %r' % (entry_type, ))
  
          def parse(row, mapping, entry_type):
              resp = dict(zip(mapping, row))
              resp['entry_type'] = entry_type
              return resp
  
          parsed = [parse(row, mapping, entry_type) for row in decoded]
          return parsed