But this causes a problem:
myparser = MyParser()
Traceback (most recent call last):
TypeError: must be type, not classobj
What's with that? The super(class, instance).__init__ idiom is the supposed proper way of calling a parent class constructor, and it is -- if the class is a "new-style" Python class (one which inherits from object, or a class which inherits from object).
And therein is the problem: HTMLParser inherits from markupbase.ParserBase, and markupbase.ParserBase is defined as:
"""Parser base class which provides some common support methods used
by the SGML/HTML and XHTML parsers."""
That is, as an *old* style class. One definitely wonders why in Python 2.7+ the classes that form part of the standard library wouldn't all be new-style classes, *especially* when the class is intended as being something you inherit from (like HTMLParser). Anywho, to fix:
# Old style way of doing super()