code: def as_html(self, fields='*'):
          
          fields = self._parse_fields_string(fields)
          def td_value(v):
              return '<td><div align="{}">{}</div></td>'.format(('left','right')[isinstance(v, (int, float))], str(v))
          def row_to_tr(r):
              return "<tr>" + "".join(td_value(getattr(r, fld)) for fld in fields) + "</tr>\n"
          ret = ""
          ret += "<table>\n"
          ret += "<tr>" + "".join(map('<th><div align="center">{}</div></th>'.format, fields)) + "</tr>\n"
          ret += "".join(map(row_to_tr, self))
          ret += "</table>"
          return ret
docs: Output the table as a rudimentary HTML table.
          @param fields: fields in the table to be shown in the table
                         - listing '*' as a field will add all unnamed fields
                         - starting a field name with '-' will suppress that name
          @type fields: list of strings or a single space-delimited string
          @return: string of generated HTML representing the selected table row attributes