def make_repr_html(obj):
    """
    Make a nice HTML table
    :param obj: Python object
    :return: HTML string
    """
    html_text = f'<h3>{obj.__class__.__name__} {obj.name}</h3>'
    html_text += '<table><tbody>'
    if hasattr(obj, 'package_names'):
        html_text += '<tr><td>number of packages:</td>'
        html_text += f'<td>{len(obj.package_names)}</td></tr>'
    if hasattr(obj, 'var_names'):
        html_text += '<tr><td>number of variables: </td>'
        html_text += f'<td>{len(obj.var_names)}</td></tr>'
    if hasattr(obj, 'value'):
        html_text += '<tr><td>value: </td>'
        html_text += f'<td>{repr(obj.value)}</td></tr>'
        if obj.value.shape:
            html_text += '<tr><td>shape: </td>'
            html_text += f'<td>{obj.value.shape}</td></tr>'
    if hasattr(obj, 'origin'):
        html_text += '<tr><td>location: </td>'
        html_text += f'<td>{obj.origin}</td></tr>'
    html_text += '</tbody></table>'
    return html_text
