code: def _column_widths(self, data):
      if not data:
          return None
      widths = {}
      self._update_column_widths(widths, data[0], self.max_header_width)
      for row in data[1:]:
          self._update_column_widths(widths, row, self.max_data_width)
      return [widths[col] for col in sorted(widths)]
  
imports: import curses
  import logging
  from tabview import tabview
label_desc: Use image node_id 3 for calling the Viewer obj's underlying member method code with example usage: obj._column_widths(data) and returns: unknown, None