code: def row_append(self, row_key, value_list):
          
          if row_key in self._row_keys:
              raise KeyError('Key %s already exists in row keys.' % row_key)
          if not len(value_list) == len(self._col_keys):
              raise ValueError('Length of data to set does not meet expected row length of %i' % len(self._col_keys))
          self._row_keys.append(row_key)
          for c, v in zip(self._col_keys, value_list):
              self[row_key, c] = v
docs: append a new row to a DataRange
  
          :param row_key: a string
          :param value_list: a list