docstr: mini_batch_data: [('0', '0', '123:123', '123:123', '123:123',)
docstr_tok: ["mini_batch_data",":","[","(","'","0","'",",","'","0","'",",","'123:123","'",",","'123:123","'",",","'123:123","'",",",")"]
code: def pre_processing(self, mini_batch_data: List[Tuple]):
      """
      mini_batch_data: [('0', '0', '123:123', '123:123', '123:123',)
      """
      sample_lines = len(mini_batch_data)
      feat_id = []
      feat_value = []
      y = []
  
      for i in range(sample_lines):
          row_value = mini_batch_data[i]
          sample = self.decode_libsvm(row_value)
          feat_id.append(sample["id"])
          feat_value.append(sample["value"])
          y.append(sample["y"])
      return {"id": feat_id, "value": feat_value, "y": y}
  
file_path: singa/examples/model_selection/TRAILS-Database-Native-Model-Selection/internal/cache-service/cache_service.py
imports: import time
  import threading
  import queue
  import psycopg2
  from typing import Any, List, Dict, Tuple
  from sanic import Sanic
  from sanic.response import json
  import calendar
  import os
  import logging
label_desc: Use image node_id 3 for calling the CacheService obj's underlying member method code with example usage: obj.pre_processing(mini_batch_data) and returns: dict