title: wxpython PyGridTableBase
body: <p>I want to use editable choice editor with PyGridTableBase. When I edit
  a cell it is crashing  What is error in my code?
  My python code:</p>
  
  <pre><code>import wx
  import wx.grid as gridlib
  
  class MyTableBase(gridlib.PyGridTableBase):
  
     def __init__(self):
         gridlib.PyGridTableBase.__init__(self)
  
         self.data = {0:["value 1", "value 2"],
                      1:["value 3", "value 4", "value 5"]}
  
         self.column_labels = [unicode(u"Label 1"),
                               unicode(u"Label 2"),
                               unicode(u"Label 3")]
  
  
  
         self._rows = self.GetNumberRows()
         self._cols = self.GetNumberCols()
  
     def GetColLabelValue(self, col):
         return self.column_labels[col]
  
     def GetNumberRows(self):
         return len(self.data.keys())
  
     def GetNumberCols(self):
         return len(self.column_labels)
  
     def GetValue(self, row, col):
         try:
             if col &gt; self.GetNumberCols():
                 raise IndexError
             return self.data[row][col]
         except IndexError:
             return None
  
     def IsEmptyCell(self, row, col):
         if self.data[row][col] is not None:
             return True
         else:
             return False
  
     def GetAttr(self, row, col, kind):
         attr = gridlib.GridCellAttr()
         editor = gridlib.GridCellChoiceEditor(["xxx", "yyy", "zzz"],
                                               allowOthers = True)
         attr.SetEditor(editor)
         attr.IncRef()
         return attr
  
  class MyDataGrid(gridlib.Grid):
     def __init__(self, parent):
         gridlib.Grid.__init__(self, parent, wx.NewId())
         self.base_table = MyTableBase()
         self.SetTable(self.base_table)
  
  
  if __name__ == '__main__':
     app = wx.App(redirect = False)
     frame = wx.Frame(None, wx.NewId(), title = u"Test")
     grid_ = MyDataGrid(frame)
     frame.Show()
     app.MainLoop()
  </code></pre>