state = dict(self.__dict__) # make a copy of the attribute dict.
state['info'] = dict(self.info) # make a copy of the info dict too.
del(state['_hooke'])
- dc = state['command_stack']
- if hasattr(dc, '__getstate__'):
- state['command_stack'] = dc.__getstate__()
- if state['info'].get('experiment', None) != None:
- e = state['info']['experiment']
- assert isinstance(e, experiment.Experiment), type(e)
- # HACK? require Experiment classes to be defined in the
- # experiment module.
- state['info']['experiment'] = e.__class__.__name__
return state
def __setstate__(self, state):
self.name = self._hooke = None
for key,value in state.items():
- if key == 'path':
- self.set_path(value)
- continue
- elif key == 'info':
- if 'experiment' not in value:
- value['experiment'] = None
- elif value['experiment'] != None:
- # HACK? require Experiment classes to be defined in the
- # experiment module.
- cls = getattr(experiment, value['experiment'])
- value['experiment'] = cls()
- elif key == 'command_stack':
- v = CommandStack()
- v.__setstate__(value)
- value = v
setattr(self, key, value)
+ self.set_path(state.get('path', None))
def set_hooke(self, hooke=None):
if hooke != None: