use same value in widget and multimodel to count parameter
This commit is contained in:
parent
b73d6f08b8
commit
1601f1455c
@ -4,7 +4,6 @@ from functools import reduce
|
||||
from itertools import count, cycle
|
||||
from operator import add
|
||||
from string import ascii_letters
|
||||
from typing import Dict, List, Tuple
|
||||
|
||||
import numpy as np
|
||||
from pyqtgraph import mkPen
|
||||
@ -144,7 +143,7 @@ class QFitDialog(QtWidgets.QWidget, Ui_FitDialog):
|
||||
self._complex[self._current_model] = self.functionwidget.get_complex_state()
|
||||
self._func_list[self._current_model] = self.functionwidget.get_parameter_list()
|
||||
|
||||
def load(self, ids: List[str]):
|
||||
def load(self, ids: list[str]):
|
||||
"""
|
||||
Add name and id of dataset to list.
|
||||
"""
|
||||
@ -216,7 +215,7 @@ class QFitDialog(QtWidgets.QWidget, Ui_FitDialog):
|
||||
self.model_frame.hide()
|
||||
|
||||
def _prepare(self, model: list, function_use: list = None,
|
||||
parameter: dict = None, add_idx: bool = False, cnt: int = 0) -> Tuple[dict, int]:
|
||||
parameter: dict = None, add_idx: bool = False, cnt: int = 0) -> tuple[dict, int]:
|
||||
if parameter is None:
|
||||
parameter = {'parameter': {}, 'lb': (), 'ub': (), 'var': [],
|
||||
'glob': {'idx': [], 'p': [], 'var': [], 'lb': [], 'ub': []},
|
||||
@ -241,6 +240,8 @@ class QFitDialog(QtWidgets.QWidget, Ui_FitDialog):
|
||||
parameter['links'] += links
|
||||
parameter['color'] += [f['color']]
|
||||
|
||||
cnt = f['cnt']
|
||||
|
||||
for p_k, v_k in p.items():
|
||||
if add_idx:
|
||||
kw_k = {f'{k}_{cnt}': v for k, v in v_k[1].items()}
|
||||
@ -450,7 +451,7 @@ class QFitDialog(QtWidgets.QWidget, Ui_FitDialog):
|
||||
|
||||
return self.preview_lines
|
||||
|
||||
def set_parameter(self, parameter: Dict[str, FitResult]):
|
||||
def set_parameter(self, parameter: dict[str, FitResult]):
|
||||
# which data uses which model
|
||||
data = self.data_table.collect_data(default=self.default_combobox.currentData())
|
||||
|
||||
@ -468,7 +469,7 @@ class QFitDialog(QtWidgets.QWidget, Ui_FitDialog):
|
||||
|
||||
self.set_parameter_iter(None, mean_parameter, self.models[fitted_model])
|
||||
|
||||
def set_parameter_iter(self, fit_id: str | None, param: List[float], functions: List, cnt: int = 0):
|
||||
def set_parameter_iter(self, fit_id: str | None, param: list[float], functions: list, cnt: int = 0):
|
||||
for model_p in functions:
|
||||
if model_p['active']:
|
||||
cnt += self.param_widgets[model_p['cnt']].set_parameter(fit_id, param[cnt:])
|
||||
|
@ -29,7 +29,7 @@ class ModelFactory:
|
||||
right_cnt = None
|
||||
else:
|
||||
right = func['func']
|
||||
right_cnt = func['pos']
|
||||
right_cnt = func['cnt']
|
||||
|
||||
if left is None:
|
||||
left = right
|
||||
|
Loading…
Reference in New Issue
Block a user