def deserialize(stream): c = cell(stream["row"], stream["col"], stream["size"]) c._state = stream["state"] elements = [] for el in stream["elements"]: elements.append(element.deserialize(el)) for index, el in enumerate(c.elements): e = elements[index] el.update(e) el.notDirty() return c
def _updateFromUref(self, uref): if uref.name==element.NAME: cell_, eRow, eCol = self._findCellForElement(uref.row+uref.offsetRow, uref.col+uref.offsetCol) el = cell_.getElementAt(eRow, eCol) update = element.deserialize(cPickle.loads(uref.data)) el.update(update) elif uref.name==cell.NAME: cell_ = self.getCellAt(uref.row, uref.col) update = cell_.deserialize(cPickle.loads(uref.data)) cell_.update(update) else: raise Exception("Uref update for: '%s'."%uref.name)