Describe the bug
Running a serial fit can produce outputs which are incorrectly parsed by the fitting data model:
Traceback (most recent call last):
File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\data_handling\data_presenter.py", line 62, in _start_serial_fit
self.fit_all_started_notifier.notify_subscribers(ws_name_list, do_sequential=False)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 99, in notify_subscribers
Observable.notify_subscribers(self, *args)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 55, in notify_subscribers
self.thread_safe_update_call(arg, **kwargs)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\qt\qappthreadcall.py", line 67, in __call__
return self._callable(*args)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 59, in _notify_subscribers_impl
observer.update(self, arg, **kwargs)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 91, in update
self.callback(arg)
File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\plotting\plot_presenter.py", line 96, in do_fit_all
self.fit_all_done_notifier.notify_subscribers(fitprop_list)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 99, in notify_subscribers
Observable.notify_subscribers(self, *args)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 55, in notify_subscribers
self.thread_safe_update_call(arg, **kwargs)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\qt\qappthreadcall.py", line 67, in __call__
return self._callable(*args)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 59, in _notify_subscribers_impl
observer.update(self, arg, **kwargs)
File "c:\mantid-conda\mantid\qt\python\mantidqt\mantidqt\utils\observer_pattern.py", line 91, in update
self.callback(arg)
File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\data_handling\data_presenter.py", line 54, in fit_completed
self.model.update_fit(fit_props)
File "c:\mantid-conda\mantid\qt\python\mantidqtinterfaces\mantidqtinterfaces\Engineering\gui\engineering_diffraction\tabs\fitting\data_handling\data_model.py", line 348, in update_fit
key = '_'.join([fname, params_dict['Name'][irow].split('.')[-1]]) # funcname_param
IndexError: list index out of range
To Reproduce
load in focused data ( I used 307562_307521 bank 2 and bank 1)
Plot both spectra and click the Fit toolbar button
Add some functions to the model (eg. some Bk2BkExp peaks)
Click Serial Fit on the right just below the data table.
Sometimes produce the above error message.
Expected behavior
Outputs are parsed correctly and any problems with the outputs are handled gracefully.
Platform/Version (please complete the following information):
Found by myself and Richard: https://github.com/mantidproject/mantid/pull/34776#issuecomment-1335106700 main bug is point 2 in that comment. Point 1 in that comment would also be could to fix but cannot be reliably reproduced.
Describe the bug Running a serial fit can produce outputs which are incorrectly parsed by the fitting data model:
To Reproduce
Expected behavior Outputs are parsed correctly and any problems with the outputs are handled gracefully.
Platform/Version (please complete the following information):