deal with missing weight key get_state and set_state; partly fixes #158

This commit is contained in:
Dominik Demuth 2023-11-29 08:11:14 +00:00
parent 8a6c909c3e
commit 7c71061877

View File

@ -393,8 +393,7 @@ class FitResult(Points):
def get_state(self): def get_state(self):
state = super().get_state() state = super().get_state()
for attr in ['idx', 'fun_kwargs', 'nobs', 'nvar', for attr in ['idx', 'fun_kwargs', 'nobs', 'nvar', 'we', 'islog', 'iscomplex', 'x_data', 'y_data']:
'islog', 'iscomplex', 'x_data', 'y_data']:
state[attr] = getattr(self, attr) state[attr] = getattr(self, attr)
state['name'] = self._model_name state['name'] = self._model_name
@ -412,6 +411,8 @@ class FitResult(Points):
@staticmethod @staticmethod
def set_state(state, **kwargs): def set_state(state, **kwargs):
state['params'] = {k: Parameter.set_state(v) for k, v in state.pop('params').items()} state['params'] = {k: Parameter.set_state(v) for k, v in state.pop('params').items()}
if 'we' not in state:
state['we'] = '?'
data = FitResult(**state) data = FitResult(**state)
return data return data
@ -440,6 +441,9 @@ class FitResult(Points):
return new_fit return new_fit
def sub(self, x_values): def sub(self, x_values):
if self.func is None:
raise ValueError('no fit function available to calculate new y values')
part_functions = [] part_functions = []
actual_mode = -1 actual_mode = -1
if 'complex_mode' in self.fun_kwargs: if 'complex_mode' in self.fun_kwargs: