code: def _handle_result_line(self, sline):
          
          # If there are less values founded than headers, it's an error
          if len(sline) != len(self._columns):
              self.err("One data line has the wrong number of items")
              return -1
          result = ''
          name = ''
          for idx, val in enumerate(sline):
              if self._columns[idx] == 'Analyte Name':
                  name = val
              elif self._columns[idx] == 'Analyte Result':
                  result = self._convert_result(val)
  
          if not self._cur_values.get(self._keyword, None):
              self._cur_values[self._keyword] = {}
  
          self._cur_values[self._keyword][name] = result
  
          # Each line goes to result values as well in case AS'es for each
          # Analyte is created in Bika. For those kind of AS'es, keywords must be
          # the same as Analyte Name field from CSV.
          self._cur_values[name] = {
                  'DefaultResult': 'Analyte Result',
                  'Remarks': '',
                  'Analyte Result': result,
                  }
  
          # Adding this result to the previous results
          # in the self._cur_values dictionary, as an interim field.
          for key in self._cur_values:
              if key == name:
                  continue
              self._cur_values[key][name] = result
  
          return 0
docs: Parses the data line and adds to the dictionary.
          :param sline: a split data line to parse
          :returns: the number of rows to jump and parse the next data line or
          return the code error -1