Skip to content

Commit

Permalink
WIP: save_instance_state simplify
Browse files Browse the repository at this point in the history
  • Loading branch information
unkcpz committed Dec 9, 2024
1 parent 937ad01 commit fe80e5d
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions src/plumpy/persistence.py
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,6 @@ def load_instance_state(self, saved_state: SAVED_STATE_TYPE, load_context: Optio
for member in self._auto_persist:
setattr(self, member, self._get_value(saved_state, member, load_context))

@super_check
def save_instance_state(self, out_state: SAVED_STATE_TYPE, save_context: Optional[LoadSaveContext]) -> None:
self._ensure_persist_configured()
if self._auto_persist is not None:
Expand Down Expand Up @@ -523,7 +522,24 @@ def save(self, save_context: Optional[LoadSaveContext] = None) -> SAVED_STATE_TY
loader = default_loader

Savable._set_class_name(out_state, loader.identify_object(self.__class__))
call_with_super_check(self.save_instance_state, out_state, save_context)

# self.save_instance_state(out_state, save_context)
self._ensure_persist_configured()
if self._auto_persist is not None:
for member in self._auto_persist:
value = getattr(self, member)
if inspect.ismethod(value):
if value.__self__ is not self:
raise TypeError('Cannot persist methods of other classes')
Savable._set_meta_type(out_state, member, META__TYPE__METHOD)
value = value.__name__
elif isinstance(value, Savable):
Savable._set_meta_type(out_state, member, META__TYPE__SAVABLE)
value = value.save()
else:
value = copy.deepcopy(value)
out_state[member] = value

return out_state

def _ensure_persist_configured(self) -> None:
Expand Down

0 comments on commit fe80e5d

Please sign in to comment.