code: def AddRow(self, values):
      
      if self._number_of_columns and len(values) != self._number_of_columns:
        raise ValueError('Number of values is out of bounds.')
  
      if not self._column_sizes and self._columns:
        self._column_sizes = [len(column) for column in self._columns]
  
      value_strings = []
      for value_index, value_string in enumerate(values):
        if not isinstance(value_string, py2to3.UNICODE_TYPE):
          value_string = '{0!s}'.format(value_string)
        value_strings.append(value_string)
  
        self._column_sizes[value_index] = max(
            self._column_sizes[value_index], len(value_string))
  
      self._rows.append(value_strings)
  
      if not self._number_of_columns:
        self._number_of_columns = len(value_strings)
docs: Adds a row of values.
  
      Args:
        values (list[object]): values.
  
      Raises:
        ValueError: if the number of values is out of bounds.