code: def _get_value(self, value, is_vector=False):
      try:
          if is_vector:
              value = [float(value)]
          else:
              value = float(value)
          return value
      except ValueError:
          pass
      ext = (os.path.splitext(value)[1]).lower()
      with self._filereader.open(value) as f:
          value = load(ext)(f, normalize=self._normalize)
      return value
  
imports: import atexit
  import csv
  import os
  import threading
  from collections import OrderedDict, deque
  from time import sleep
  import numpy
  from nnabla.config import nnabla_config
  from nnabla.logger import logger
  from nnabla.utils.communicator_util import current_communicator
  from six.moves import queue
  from .data_source import DataSource
  from .data_source_loader import FileReader, load
label_desc: Use image node_id 4 for calling the CsvDataSource obj's underlying member method code with example usage: obj._get_value(value, is_vector) and returns: value, value