def read(self, transformation): sio = cStringIO.StringIO(transformation) unpickler = cPickle.Unpickler(sio) unpickler.persistent_load = self._persistent_load pickleable = IPickleable(unpickler.load()) #print 'read(transformation) => %s (%s)' % (pickleable, pickleable.read_object().name) return pickleable.read_object()
def write(self, instance): pickleable = IPickleable(instance) print 'IPickles(%s) -> %s' % (instance.name, pickleable) self._writing = pickleable self._sio.seek(0) self._pickler.clear_memo() self._pickler.dump(pickleable.write_object()) self._sio.truncate() return self._sio.getvalue()