summaryrefslogtreecommitdiff
path: root/silx/gui/fit/FitWidget.py
diff options
context:
space:
mode:
authorAlexandre Marie <alexandre.marie@synchrotron-soleil.fr>2020-07-21 14:45:14 +0200
committerAlexandre Marie <alexandre.marie@synchrotron-soleil.fr>2020-07-21 14:45:14 +0200
commit328032e2317e3ac4859196bbf12bdb71795302fe (patch)
tree8cd13462beab109e3cb53410c42335b6d1e00ee6 /silx/gui/fit/FitWidget.py
parent33ed2a64c92b0311ae35456c016eb284e426afc2 (diff)
New upstream version 0.13.0+dfsg
Diffstat (limited to 'silx/gui/fit/FitWidget.py')
-rw-r--r--silx/gui/fit/FitWidget.py40
1 files changed, 25 insertions, 15 deletions
diff --git a/silx/gui/fit/FitWidget.py b/silx/gui/fit/FitWidget.py
index c3804e1..7279cd9 100644
--- a/silx/gui/fit/FitWidget.py
+++ b/silx/gui/fit/FitWidget.py
@@ -43,7 +43,6 @@ __date__ = "17/07/2018"
import logging
import sys
import traceback
-import warnings
from silx.math.fit import fittheories
from silx.math.fit import fitmanager, functions
@@ -52,6 +51,7 @@ from .FitWidgets import (FitActionsButtons, FitStatusLines,
FitConfigWidget, ParametersTab)
from .FitConfig import getFitConfigDialog
from .BackgroundWidget import getBgDialog, BackgroundDialog
+from ...utils.deprecation import deprecated
QTVERSION = qt.qVersion()
DEBUG = 0
@@ -226,7 +226,9 @@ class FitWidget(qt.QWidget):
self.guibuttons = FitActionsButtons(self)
"""Widget with estimate, start fit and dismiss buttons"""
self.guibuttons.EstimateButton.clicked.connect(self.estimate)
+ self.guibuttons.EstimateButton.setEnabled(False)
self.guibuttons.StartFitButton.clicked.connect(self.startFit)
+ self.guibuttons.StartFitButton.setEnabled(False)
self.guibuttons.DismissButton.clicked.connect(self.dismiss)
layout.addWidget(self.guibuttons)
@@ -314,12 +316,11 @@ class FitWidget(qt.QWidget):
configuration.update(self.configure())
+ @deprecated(replacement='setData', since_version='0.3.0')
def setdata(self, x, y, sigmay=None, xmin=None, xmax=None):
- warnings.warn("Method renamed to setData",
- DeprecationWarning)
self.setData(x, y, sigmay, xmin, xmax)
- def setData(self, x, y, sigmay=None, xmin=None, xmax=None):
+ def setData(self, x=None, y=None, sigmay=None, xmin=None, xmax=None):
"""Set data to be fitted.
:param x: Abscissa data. If ``None``, :attr:`xdata`` is set to
@@ -335,11 +336,17 @@ class FitWidget(qt.QWidget):
:param xmin: Lower value of x values to use for fitting
:param xmax: Upper value of x values to use for fitting
"""
- self.fitmanager.setdata(x=x, y=y, sigmay=sigmay,
- xmin=xmin, xmax=xmax)
- for config_dialog in self.bgconfigdialogs.values():
- if isinstance(config_dialog, BackgroundDialog):
- config_dialog.setData(x, y, xmin=xmin, xmax=xmax)
+ if y is None:
+ self.guibuttons.EstimateButton.setEnabled(False)
+ self.guibuttons.StartFitButton.setEnabled(False)
+ else:
+ self.guibuttons.EstimateButton.setEnabled(True)
+ self.guibuttons.StartFitButton.setEnabled(True)
+ self.fitmanager.setdata(x=x, y=y, sigmay=sigmay,
+ xmin=xmin, xmax=xmax)
+ for config_dialog in self.bgconfigdialogs.values():
+ if isinstance(config_dialog, BackgroundDialog):
+ config_dialog.setData(x, y, xmin=xmin, xmax=xmax)
def associateConfigDialog(self, theory_name, config_widget,
theory_is_background=False):
@@ -505,10 +512,12 @@ class FitWidget(qt.QWidget):
msg.setWindowTitle('FitWidget Message')
msg.exec_()
return
- except: # noqa (we want to catch and report all errors)
+ except Exception as e: # noqa (we want to catch and report all errors)
+ _logger.warning('Estimate error: %s', traceback.format_exc())
msg = qt.QMessageBox(self)
msg.setIcon(qt.QMessageBox.Critical)
- msg.setText("Error on estimate: %s" % traceback.format_exc())
+ msg.setWindowTitle("Estimate Error")
+ msg.setText("Error on estimate: %s" % e)
msg.exec_()
ddict = {
'event': 'EstimateFailed',
@@ -524,9 +533,8 @@ class FitWidget(qt.QWidget):
'data': self.fitmanager.fit_results}
self._emitSignal(ddict)
+ @deprecated(replacement='startFit', since_version='0.3.0')
def startfit(self):
- warnings.warn("Method renamed to startFit",
- DeprecationWarning)
self.startFit()
def startFit(self):
@@ -548,10 +556,12 @@ class FitWidget(qt.QWidget):
'data': None}
self._emitSignal(ddict)
self.fitmanager.runfit(callback=self.fitStatus)
- except: # noqa (we want to catch and report all errors)
+ except Exception as e: # noqa (we want to catch and report all errors)
+ _logger.warning('Estimate error: %s', traceback.format_exc())
msg = qt.QMessageBox(self)
msg.setIcon(qt.QMessageBox.Critical)
- msg.setText("Error on Fit: %s" % traceback.format_exc())
+ msg.setWindowTitle("Fit Error")
+ msg.setText("Error on Fit: %s" % e)
msg.exec_()
ddict = {
'event': 'FitFailed',