[wxPython] Adding column titles to subclasses of wxPyGridTableBase

I'm trying to add column titles to a subclass of wxPyGridTableBase by
adding a SetColLabelVaule method as follows:

    def SetColLabelValue(self, pos, value):
        self.base_SetColLabelValue(pos, value)
        return

But the column labels are not being set correctly.

Here is how I modifed the demo/GridHugeTable.py:

from wxPython.wx import *
from wxPython.grid import *

···

#---------------------------------------------------------------------------

class HugeTable(wxPyGridTableBase):

    """
    This is all it takes to make a custom data table to plug into a
    wxGrid. There are many more methods that can be overridden, but
    the ones shown below are the required ones. This table simply
    provides strings containing the row and column values.
    """

    def __init__(self, log):
        wxPyGridTableBase.__init__(self)
        self.log = log

    def GetNumberRows(self):
        return 10000

    def GetNumberCols(self):
        return 10000

    def IsEmptyCell(self, row, col):
        return false

    def GetValue(self, row, col):
        return str( (row, col) )

    def SetValue(self, row, col, value):
        self.log.write('SetValue(%d, %d, "%s") ignored.\n' % (row, col, value))

    def SetColLabelValue(self, pos, value):

        self.log.write('SetColLabelValue(%d, "%s") calling base.\n' % (pos, value))
        self.base_SetColLabelValue(pos, value)
        return
    
#---------------------------------------------------------------------------

class HugeTableGrid(wxGrid):
    def __init__(self, parent, log):
        wxGrid.__init__(self, parent, -1)

        table = HugeTable(log)

        # The second parameter means that the grid is to take ownership of the
        # table and will destroy it when done. Otherwise you would need to keep
        # a reference to it and call it's Destroy method later.
        self.SetTable(table, true)

#---------------------------------------------------------------------------

class TestFrame(wxFrame):
    def __init__(self, parent, log):
        wxFrame.__init__(self, parent, -1, "Huge (virtual) Table Demo", size=(640,480))
        grid = HugeTableGrid(self, log)

        grid.SetColLabelValue(1, "This is 1")

#---------------------------------------------------------------------------

if __name__ == '__main__':
    import sys
    app = wxPySimpleApp()
    frame = TestFrame(None, sys.stdout)
    frame.Show(true)
    app.MainLoop()

#---------------------------------------------------------------------------