code: def parse_line(self, line):
      """Parse a line.
  
      Ratings are translated so that they are all strictly positive.
  
      Args:
          line(str): The line to parse
  
      Returns:
          tuple: User id, item id, rating and timestamp. The timestamp is set
          to ``None`` if it does no exist.
      """
  
      line = line.split(self.sep)
      try:
          if self.with_timestamp:
              uid, iid, r, timestamp = (
                  line[i].strip() for i in self.indexes
              )
          else:
              uid, iid, r = (line[i].strip() for i in self.indexes)
              timestamp = None
  
      except IndexError:
          raise ValueError(
              "Impossible to parse line. Check the line_format"
              " and sep parameters."
          )
  
      return uid, iid, float(r), timestamp
  
imports: from .builtin_datasets import BUILTIN_DATASETS
label_desc: Use image node_id 2 for calling the Reader obj's underlying member method code with example usage: obj.parse_line(line) and returns: uid,  iid,  float,  timestamp