docs: def _generate_html_table(data, out, level=0, extra_style=''):
      '''
      Generate a single table of data
      '''
      print('<table style="{0}">'.format(
          _lookup_style('table', ['table' + six.text_type(level)])), file=out)
  
      firstone = True
  
      row_style = 'row' + six.text_type(level)
      cell_style = 'cell' + six.text_type(level)
  
      for subdata in data:
          first_style = 'first_first' if firstone else 'notfirst_first'
          second_style = 'first' if firstone else 'other'
  
          if isinstance(subdata, dict):
              if '__style__' in subdata:
                  new_extra_style = subdata['__style__']
                  del subdata['__style__']
              else:
                  new_extra_style = extra_style
              if len(subdata) == 1:
                  name, value = next(six.iteritems(subdata))
                  print('<tr style="{0}">'.format(
                      _lookup_style('tr', [row_style])
                  ), file=out)
                  print('<td style="{0}">{1}</td>'.format(
                      _lookup_style(
                          'td',
                          [cell_style, first_style, 'name', new_extra_style]
                      ),
                      name
                  ), file=out)
                  if isinstance(value, list):
                      print('<td style="{0}">'.format(
                          _lookup_style(
                              'td',
                              [
                                  cell_style,
                                  second_style,
                                  'container',
                                  new_extra_style
                              ]
                          )
                      ), file=out)
                      _generate_html_table(
                          value,
                          out,
                          level + 1,
                          new_extra_style
                      )
                      print('</td>', file=out)
                  else:
                      print('<td style="{0}">{1}</td>'.format(
                          _lookup_style(
                              'td',
                              [
                                  cell_style,
                                  second_style,
                                  'value',
                                  new_extra_style
                              ]
                          ),
                          cgi.escape(six.text_type(value))
                      ), file=out)
                  print('</tr>', file=out)
          elif isinstance(subdata, list):
              print('<tr style="{0}">'.format(
                  _lookup_style('tr', [row_style])
              ), file=out)
              print('<td style="{0}">'.format(
                  _lookup_style(
                      'td',
                      [cell_style, first_style, 'container', extra_style]
                  )
              ), file=out)
              _generate_html_table(subdata, out, level + 1, extra_style)
              print('</td>', file=out)
              print('</tr>', file=out)
          else:
              print('<tr style="{0}">'.format(
                  _lookup_style('tr', [row_style])
              ), file=out)
              print('<td style="{0}">{1}</td>'.format(
                  _lookup_style(
                      'td',
                      [cell_style, first_style, 'value', extra_style]
                  ),
                  cgi.escape(six.text_type(subdata))
              ), file=out)
              print('</tr>', file=out)
          firstone = False
      print('</table>', file=out)