code: def namedb_row_factory( cursor, row ):
      
      d = {}
      for idx, col in enumerate( cursor.description ):
          if col[0] in ['revoked', 'locked', 'receive_whitelisted']:
              if row[idx] == 0:
                  d[col[0]] = False
              elif row[idx] == 1:
                  d[col[0]] = True
              elif row[idx] is None:
                  d[col[0]] = None
              else:
                  raise Exception("Invalid value for 'revoked': %s" % row[idx])
  
          elif col[0] in ['credit_value', 'debit_value', 'vesting_value', 'token_fee']:
              # convert back to int.
              # this is safe in Python, since Python ints don't overflow
              try:
                  d[col[0]] = int(row[idx]) if row[idx] is not None else None
              except ValueError as ve:
                  log.exception(ve)
                  log.fatal("Caught exception while converting '{}' to an int".format(row[idx]))
                  os.abort()
  
          else:
              d[col[0]] = row[idx]
  
      return d
docs: Row factor to enforce some additional types:
      * force 'revoked' to be a bool