diff --git a/refl1d/model.py b/refl1d/model.py index 118f15bf..2c242057 100644 --- a/refl1d/model.py +++ b/refl1d/model.py @@ -331,6 +331,15 @@ def add(self, other): L = [other] self._layers.extend(_check_layer(el) for el in L) + def __setstate__(self, state): + # this is a temporary shim (2024-10-29), to accomodate objects that were pickled + # before the custom __getstate__ was removed. + # TODO: the entire __setstate__ can be removed someday (e.g. in 2026?) + if isinstance(state, tuple): + self.interface, self._layers, self.name, self.thickness = state + else: + self.__dict__.update(state) + def __copy__(self): stack = Stack() stack.interface = self.interface @@ -663,11 +672,14 @@ def to_dict(self): } ) - def __getstate__(self): - return self.interface, self.repeat, self.name, self.stack - def __setstate__(self, state): - self.interface, self.repeat, self.name, self.stack = state + # this is a temporary shim (2024-10-29), to accomodate objects that were pickled + # before the custom __getstate__ was removed. + # TODO: the entire __setstate__ can be removed someday (e.g. in 2026?) + if isinstance(state, tuple): + self.interface, self.repeat, self.name, self.stack = state + else: + self.__dict__.update(state) def penalty(self): return self.stack.penalty()