code: def make_list_table(headers, data, title='', columns=None):
      
      results = []
      add = results.append
      add('.. list-table:: %s' % title)
      add('   :header-rows: 1')
      if columns:
          add('   :widths: %s' % (','.join(str(c) for c in columns)))
      add('')
      add('   - * %s' % headers[0])
      for h in headers[1:]:
          add('     * %s' % h)
      for row in data:
          add('   - * %s' % row[0])
          for r in row[1:]:
              add('     * %s' % r)
      add('')
      return '\n'.join(results)
docs: Build a list-table directive.
  
      :param headers: List of header values.
      :param data: Iterable of row data, yielding lists or tuples with rows.
      :param title: Optional text to show as the table title.
      :param columns: Optional widths for the columns.