'Updates the list of the start columns, the list of the widths of each
field, and the total width of each record in the table.'

def _update_field_metrics(self):

    spans = ([0] * len(self.columns))
    end_col = 0
    for (idx, col) in enumerate(self.columns):
        width = col.format.width
        if (not col.start):
            col.start = (end_col + 1)
        end_col = ((col.start + width) - 1)
        spans[idx] = width
    self._spans = spans
    self._width = end_col
