class_docstr: Calculate each values percentage of a total.
  
  :param column_name:
      The name of a column containing the :class:`.Number` values.
  :param total:
      If specified, the total value for each number to be divided into. By
      default, the :class:`.Sum` of the values in the column will be used.
code: def validate(self, table):
      column = table.columns[self._column_name]
  
      if not isinstance(column.data_type, Number):
          raise DataTypeError(
              "Percent column must contain Number data."
          )
      if self._total is not None and self._total <= 0:
          raise DataTypeError("The total must be a positive number")
  
      # Throw a warning if there are nulls in there
      if HasNulls(self._column_name).run(table):
          warn_null_calculation(self, column)
  
file_path: agate/agate/computations/percent.py
imports: from agate.aggregations.has_nulls import HasNulls
  from agate.aggregations.sum import Sum
  from agate.computations.base import Computation
  from agate.data_types import Number
  from agate.exceptions import DataTypeError
  from agate.warns import warn_null_calculation
label_desc: Use image node_id 3 for calling the Percent obj's underlying member method code with example usage: obj.validate(table) without return types