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()