The dict
returned by your __getitem__
has no relation any more with your columns. You'll need to return something that perhaps looks like a dict
but maps __setattr__
calls back to your table columns:
class Row(dict):
def __init__(self, table, index, *args, **kw):
self._table, self._index = table, index
super(Row, self).__init__(*args, **kw)
def __setitem__(self, key, value):
super(Row, self).__setitem__(key, value)
self._table.columns[key][self._index] = value
then return that instead of a regular dict
:
def getBufferRow(self, index):
row = {}
for key in self.columns:
row[key] = self.columns[key][index]
return Row(self, index, row)