Changeset 1bc27f1 in sasview


Ignore:
Timestamp:
May 11, 2017 4:53:22 AM (7 years ago)
Author:
Piotr Rozyczko <rozyczko@…>
Branches:
ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
Children:
d60da0c
Parents:
672b8ab
Message:

Code review fixes SASVIEW-588
Pylint related fixes in Perspectives/Fitting?

Location:
src/sas/qtgui
Files:
2 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/GUITests.py

    r672b8ab r1bc27f1  
    5050    suites = ( 
    5151        # Plotting 
    52         #unittest.makeSuite(PlotHelperTest.PlotHelperTest,             'test'), 
    53         #unittest.makeSuite(PlotterTest.PlotterTest,                   'test'), 
    54         #unittest.makeSuite(WindowTitleTest.WindowTitleTest,           'test'), 
    55         #unittest.makeSuite(PlotterBaseTest.PlotterBaseTest,           'test'), 
    56         #unittest.makeSuite(Plotter2DTest.Plotter2DTest,               'test'), 
    57         #unittest.makeSuite(AddTextTest.AddTextTest,                   'test'), 
    58         #unittest.makeSuite(ScalePropertiesTest.ScalePropertiesTest,   'test'), 
    59         #unittest.makeSuite(SetGraphRangeTest.SetGraphRangeTest,       'test'), 
    60         #unittest.makeSuite(LinearFitTest.LinearFitTest,               'test'), 
    61         #unittest.makeSuite(PlotPropertiesTest.PlotPropertiesTest,     'test'), 
    62         #unittest.makeSuite(PlotUtilitiesTest.PlotUtilitiesTest,       'test'), 
    63         #unittest.makeSuite(ColorMapTest.ColorMapTest,                 'test'), 
    64         #unittest.makeSuite(BoxSumTest.BoxSumTest,                     'test'), 
    65         #unittest.makeSuite(SlicerModelTest.SlicerModelTest,           'test'), 
    66         #unittest.makeSuite(SlicerParametersTest.SlicerParametersTest, 'test'), 
     52        unittest.makeSuite(PlotHelperTest.PlotHelperTest,             'test'), 
     53        unittest.makeSuite(PlotterTest.PlotterTest,                   'test'), 
     54        unittest.makeSuite(WindowTitleTest.WindowTitleTest,           'test'), 
     55        unittest.makeSuite(PlotterBaseTest.PlotterBaseTest,           'test'), 
     56        unittest.makeSuite(Plotter2DTest.Plotter2DTest,               'test'), 
     57        unittest.makeSuite(AddTextTest.AddTextTest,                   'test'), 
     58        unittest.makeSuite(ScalePropertiesTest.ScalePropertiesTest,   'test'), 
     59        unittest.makeSuite(SetGraphRangeTest.SetGraphRangeTest,       'test'), 
     60        unittest.makeSuite(LinearFitTest.LinearFitTest,               'test'), 
     61        unittest.makeSuite(PlotPropertiesTest.PlotPropertiesTest,     'test'), 
     62        unittest.makeSuite(PlotUtilitiesTest.PlotUtilitiesTest,       'test'), 
     63        unittest.makeSuite(ColorMapTest.ColorMapTest,                 'test'), 
     64        unittest.makeSuite(BoxSumTest.BoxSumTest,                     'test'), 
     65        unittest.makeSuite(SlicerModelTest.SlicerModelTest,           'test'), 
     66        unittest.makeSuite(SlicerParametersTest.SlicerParametersTest, 'test'), 
    6767 
    68         ## Main window 
    69         #unittest.makeSuite(AboutBoxTest.AboutBoxTest,          'test'), 
    70         #unittest.makeSuite(DataExplorerTest.DataExplorerTest,  'test'), 
    71         #unittest.makeSuite(WelcomePanelTest.WelcomePanelTest,  'test'), 
    72         #unittest.makeSuite(DroppableDataLoadWidgetTest.DroppableDataLoadWidgetTest, 'test'), 
    73         #unittest.makeSuite(GuiManagerTest.GuiManagerTest,      'test'), 
    74         #unittest.makeSuite(GuiUtilsTest.GuiUtilsTest,          'test'), 
    75         #unittest.makeSuite(MainWindowTest.MainWindowTest,      'test'), 
     68        # Main window 
     69        unittest.makeSuite(AboutBoxTest.AboutBoxTest,          'test'), 
     70        unittest.makeSuite(DataExplorerTest.DataExplorerTest,  'test'), 
     71        unittest.makeSuite(WelcomePanelTest.WelcomePanelTest,  'test'), 
     72        unittest.makeSuite(DroppableDataLoadWidgetTest.DroppableDataLoadWidgetTest, 'test'), 
     73        unittest.makeSuite(GuiManagerTest.GuiManagerTest,      'test'), 
     74        unittest.makeSuite(GuiUtilsTest.GuiUtilsTest,          'test'), 
     75        unittest.makeSuite(MainWindowTest.MainWindowTest,      'test'), 
    7676 
    77         ## Utilities 
    78         #unittest.makeSuite(TestUtilsTest.TestUtilsTest,         'test'), 
    79         #unittest.makeSuite(SasviewLoggerTest.SasviewLoggerTest, 'test'), 
     77        # Utilities 
     78        unittest.makeSuite(TestUtilsTest.TestUtilsTest,         'test'), 
     79        unittest.makeSuite(SasviewLoggerTest.SasviewLoggerTest, 'test'), 
    8080 
    81         ## Calculators 
    82         #unittest.makeSuite(KiessigCalculatorTest.KiessigCalculatorTest,                     'test'), 
    83         #unittest.makeSuite(DensityCalculatorTest.DensityCalculatorTest,                     'test'), 
    84         #unittest.makeSuite(GenericScatteringCalculatorTest.GenericScatteringCalculatorTest, 'test'), 
     81        # Calculators 
     82        unittest.makeSuite(KiessigCalculatorTest.KiessigCalculatorTest,                     'test'), 
     83        unittest.makeSuite(DensityCalculatorTest.DensityCalculatorTest,                     'test'), 
     84        unittest.makeSuite(GenericScatteringCalculatorTest.GenericScatteringCalculatorTest, 'test'), 
    8585 
    86         ## Perspectives 
    87         #unittest.makeSuite(FittingPerspectiveTest.FittingPerspectiveTest, 'test'), 
     86        # Perspectives 
     87        unittest.makeSuite(FittingPerspectiveTest.FittingPerspectiveTest, 'test'), 
    8888        unittest.makeSuite(FittingWidgetTest.FittingWidgetTest,           'test'), 
    89         #unittest.makeSuite(FittingLogicTest.FittingLogicTest,             'test'), 
    90         #unittest.makeSuite(FittingUtilitiesTest.FittingUtilitiesTest,     'test'), 
     89        unittest.makeSuite(FittingLogicTest.FittingLogicTest,             'test'), 
     90        unittest.makeSuite(FittingUtilitiesTest.FittingUtilitiesTest,     'test'), 
    9191        unittest.makeSuite(FitPageTest.FitPageTest,                       'test'), 
    9292    ) 
  • src/sas/qtgui/Perspectives/Fitting/FitPage.py

    r672b8ab r1bc27f1  
     1""" 
     2Container class for fitting widget state storage 
     3""" 
    14class FitPage(object): 
    25    """ 
  • src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py

    r2add354 r1bc27f1  
    1 import sys 
    21import numpy 
    32 
     
    54from PyQt4 import QtGui 
    65 
    7 import sas.qtgui.Utilities.GuiUtils as GuiUtils 
    86import sas.qtgui.Utilities.ObjectLibrary as ObjectLibrary 
    97 
    10 from FittingWidget import FittingWidget 
     8from sas.qtgui.Perspectives.Fitting.FittingWidget import FittingWidget 
    119#from FitPage import FitPage 
    1210 
     
    3129 
    3230        # The current optimizer 
    33         self.optimizer = 'DREAM' 
     31        self.optimizer = 'Levenberg-Marquardt' 
    3432 
    3533        # The tabs need to be closeable 
     
    7775        Add a new tab for passed data 
    7876        """ 
    79         tab     = FittingWidget(parent=self.parent, data=data, id=self.maxIndex+1) 
     77        tab     = FittingWidget(parent=self.parent, data=data, tab_id=self.maxIndex+1) 
    8078        # Add this tab to the object library so it can be retrieved by scripting/jupyter 
    8179        ObjectLibrary.addObject(self.tabName(), tab) 
  • src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py

    r2add354 r1bc27f1  
     1from copy import deepcopy 
     2 
    13from PyQt4 import QtGui 
    24from PyQt4 import QtCore 
    35 
    46import numpy 
    5 from copy import deepcopy 
    67 
    78from sas.sasgui.guiframe.dataFitting import Data1D 
     
    5758        item1.setCheckable(True) 
    5859        item1.setEditable(False) 
    59         item_err = QtGui.QStandardItem() 
     60        # item_err = QtGui.QStandardItem() 
    6061        # check for polydisp params 
    6162        if param.polydisperse: 
     
    199200    #flag = self.get_weight_flag() 
    200201    #weight = get_weight(data=self.data, is2d=self._is_2D(), flag=flag) 
    201  
    202     if reference_data == None: 
    203        return chisqr 
     202    chisqr = None 
     203    if reference_data is None: 
     204        return chisqr 
    204205 
    205206    # temporary default values for index and weight 
     
    209210    # Get data: data I, theory I, and data dI in order 
    210211    if isinstance(reference_data, Data2D): 
    211         if index == None: 
     212        if index is None: 
    212213            index = numpy.ones(len(current_data.data), dtype=bool) 
    213         if weight != None: 
     214        if weight is not None: 
    214215            current_data.err_data = weight 
    215216        # get rid of zero error points 
     
    221222    else: 
    222223        # 1 d theory from model_thread is only in the range of index 
    223         if index == None: 
     224        if index is None: 
    224225            index = numpy.ones(len(current_data.y), dtype=bool) 
    225         if weight != None: 
     226        if weight is not None: 
    226227            current_data.dy = weight 
    227         if current_data.dy == None or current_data.dy == []: 
     228        if current_data.dy is None or current_data.dy == []: 
    228229            dy = numpy.ones(len(current_data.y)) 
    229230        else: 
     
    288289    residuals.dxw = None 
    289290    residuals.ytransform = 'y' 
    290     # For latter scale changes  
     291    # For latter scale changes 
    291292    residuals.xaxis('\\rm{Q} ', 'A^{-1}') 
    292293    residuals.yaxis('\\rm{Residuals} ', 'normalized') 
     
    299300    """ 
    300301    # temporary default values for index and weight 
    301     index = None 
     302    # index = None 
    302303    weight = None 
    303304 
     
    351352    group_id = reference_data.group_id 
    352353    residuals.group_id = "res" + str(group_id) 
    353      
     354 
    354355    # Symbol 
    355356    residuals.symbol = 0 
  • src/sas/qtgui/Perspectives/Fitting/FittingWidget.py

    r672b8ab r1bc27f1  
    1 import sys 
    21import json 
    32import os 
    4 import numpy as np 
    53from collections import defaultdict 
    64from itertools import izip 
     
    97import traceback 
    108from twisted.internet import threads 
     9import numpy as np 
    1110 
    1211from PyQt4 import QtGui 
     
    2827from sas.sasgui.perspectives.fitting.utils import get_weight 
    2928 
    30 from UI.FittingWidgetUI import Ui_FittingWidgetUI 
     29from sas.qtgui.Perspectives.Fitting.UI.FittingWidgetUI import Ui_FittingWidgetUI 
    3130from sas.qtgui.Perspectives.Fitting.FittingLogic import FittingLogic 
    3231from sas.qtgui.Perspectives.Fitting import FittingUtilities 
    33 from SmearingWidget import SmearingWidget 
    34 from OptionsWidget import OptionsWidget 
    35 from FitPage import FitPage 
     32from sas.qtgui.Perspectives.Fitting.SmearingWidget import SmearingWidget 
     33from sas.qtgui.Perspectives.Fitting.OptionsWidget import OptionsWidget 
     34from sas.qtgui.Perspectives.Fitting.FitPage import FitPage 
    3635 
    3736TAB_MAGNETISM = 4 
     
    4544    Main widget for selecting form and structure factor models 
    4645    """ 
    47     def __init__(self, parent=None, data=None, id=1): 
     46    def __init__(self, parent=None, data=None, tab_id=1): 
    4847 
    4948        super(FittingWidget, self).__init__() 
     
    8180 
    8281        # Which tab is this widget displayed in? 
    83         self.tab_id = id 
     82        self.tab_id = tab_id 
    8483 
    8584        # Which shell is being currently displayed? 
     
    9897        layout = QtGui.QGridLayout() 
    9998        self.options_widget = OptionsWidget(self, self.logic) 
    100         layout.addWidget(self.options_widget)  
     99        layout.addWidget(self.options_widget) 
    101100        self.tabOptions.setLayout(layout) 
    102101 
     
    104103        layout = QtGui.QGridLayout() 
    105104        self.smearing_widget = SmearingWidget(self) 
    106         layout.addWidget(self.smearing_widget)  
     105        layout.addWidget(self.smearing_widget) 
    107106        self.tabResolution.setLayout(layout) 
    108107 
    109108        # Define bold font for use in various controls 
    110         self.boldFont=QtGui.QFont() 
     109        self.boldFont = QtGui.QFont() 
    111110        self.boldFont.setBold(True) 
    112111 
     
    315314        """ 
    316315        msg = 'Model description:\n' 
    317         info = "Info" 
    318316        if self.kernel_module is not None: 
    319317            if str(self.kernel_module.description).rstrip().lstrip() == '': 
     
    358356            self.createDefaultDataset() 
    359357 
    360         state = self.currentState() 
     358        # TODO: update state stack 
     359        #state = self.currentState() 
    361360 
    362361    def onSelectStructureFactor(self): 
     
    403402        # Retrieve the list of models 
    404403        model_list = self.master_category_dict[category] 
    405         models = [] 
    406404        # Populate the models combobox 
    407405        self.cbModel.addItems(sorted([model for (model, _) in model_list])) 
     
    538536        if res.fitness is None or \ 
    539537            not np.isfinite(res.fitness) or \ 
    540             np.any(res.pvec == None) or \ 
     538            np.any(res.pvec is None) or \ 
    541539            not np.all(np.isfinite(res.pvec)): 
    542540            msg = "Fitting did not converge!!!" 
     
    638636        # Regardless of previous state, this should now be `plot show` functionality only 
    639637        self.cmdPlot.setText("Show Plot") 
     638        if not self.data_is_loaded: 
     639            self.recalculatePlotData() 
    640640        self.showPlot() 
    641641 
     
    690690        elif self.log_points: 
    691691            qmin = -10.0 if self.q_range_min < 1.e-10 else np.log10(self.q_range_min) 
    692             qmax =  10.0 if self.q_range_max > 1.e10 else np.log10(self.q_range_max) 
     692            qmax = 10.0 if self.q_range_max > 1.e10 else np.log10(self.q_range_max) 
    693693            interval = np.logspace(start=qmin, stop=qmax, num=self.npts, endpoint=True, base=10.0) 
    694694        else: 
    695695            interval = np.linspace(start=self.q_range_min, stop=self.q_range_max, 
    696                     num=self.npts, endpoint=True) 
     696                                   num=self.npts, endpoint=True) 
    697697        self.logic.createDefault1dData(interval, self.tab_id) 
    698698 
     
    754754        """ 
    755755        Adds weighting contribution to fitting data 
    756         #""" 
     756        """ 
    757757        # Send original data for weighting 
    758758        weight = get_weight(data=data, is2d=self.is2D, flag=self.weighting) 
     
    856856        self.kernel_module.params[parameter_name] = value 
    857857 
     858        # TODO: update min/max based on property_name 
    858859        # min/max to be changed in self.kernel_module.details[parameter_name] = ['Ang', 0.0, inf] 
    859860        # magnetic params in self.kernel_module.details['M0:parameter_name'] = value 
     
    882883        self._model_model.blockSignals(True) 
    883884        # Convert to proper indices and set requested enablement 
    884         items = [self._model_model.item(row, 0).setCheckState(status) for row in rows] 
     885        _ = [self._model_model.item(row, 0).setCheckState(status) for row in rows] 
    885886        self._model_model.blockSignals(False) 
    886887 
     
    966967        # Awful API to a backend method. 
    967968        method = self.methodCalculateForData()(data=self.data, 
    968                               model=self.kernel_module, 
    969                               page_id=0, 
    970                               qmin=self.q_range_min, 
    971                               qmax=self.q_range_max, 
    972                               smearer=None, 
    973                               state=None, 
    974                               weight=None, 
    975                               fid=None, 
    976                               toggle_mode_on=False, 
    977                               completefn=None, 
    978                               update_chisqr=True, 
    979                               exception_handler=self.calcException, 
    980                               source=None) 
     969                                               model=self.kernel_module, 
     970                                               page_id=0, 
     971                                               qmin=self.q_range_min, 
     972                                               qmax=self.q_range_max, 
     973                                               smearer=None, 
     974                                               state=None, 
     975                                               weight=None, 
     976                                               fid=None, 
     977                                               toggle_mode_on=False, 
     978                                               completefn=None, 
     979                                               update_chisqr=True, 
     980                                               exception_handler=self.calcException, 
     981                                               source=None) 
    981982 
    982983        calc_thread = threads.deferToThread(method.compute) 
  • src/sas/qtgui/Perspectives/Fitting/OptionsWidget.py

    r61a92d4 r1bc27f1  
    66from PyQt4 import QtCore 
    77 
    8 from sas.sasgui.guiframe.dataFitting import Data1D 
    98from sas.sasgui.guiframe.dataFitting import Data2D 
    109 
    1110# Local UI 
    12 from UI.OptionsWidgetUI import Ui_tabOptions 
     11from sas.qtgui.Perspectives.Fitting.UI.OptionsWidgetUI import Ui_tabOptions 
    1312 
    1413QMIN_DEFAULT = 0.0005 
     
    5049        # Logic component 
    5150        self.logic = logic 
     51        self.parent = parent 
    5252 
    5353        # Weight radio box group 
     
    105105        self.mapper.setOrientation(QtCore.Qt.Vertical) 
    106106 
    107         self.mapper.addMapping(self.txtMinRange,  MODEL.index('MIN_RANGE')) 
    108         self.mapper.addMapping(self.txtMaxRange,  MODEL.index('MAX_RANGE')) 
    109         self.mapper.addMapping(self.txtNpts,      MODEL.index('NPTS')) 
    110         self.mapper.addMapping(self.chkLogData,   MODEL.index('LOG_SPACED')) 
     107        self.mapper.addMapping(self.txtMinRange, MODEL.index('MIN_RANGE')) 
     108        self.mapper.addMapping(self.txtMaxRange, MODEL.index('MAX_RANGE')) 
     109        self.mapper.addMapping(self.txtNpts,     MODEL.index('NPTS')) 
     110        self.mapper.addMapping(self.chkLogData,  MODEL.index('LOG_SPACED')) 
    111111        self.mapper.toFirst() 
    112112 
     
    137137    def onModelChange(self, top, bottom): 
    138138        """ 
    139         Respond to model change by updating 
     139        Respond to model change by updating the plot 
    140140        """ 
    141         #print "MODEL CHANGED for property: %s. The value is now: %s" % \ 
    142         #    (MODEL[top.row()], str(self.model.item(top.row()).text())) 
    143  
     141        # "bottom" is unused 
    144142        # update if there's something to update 
    145143        if str(self.model.item(top.row()).text()): 
     
    190188        q_range_min = float(self.model.item(MODEL.index('MIN_RANGE')).text()) 
    191189        q_range_max = float(self.model.item(MODEL.index('MAX_RANGE')).text()) 
    192         npts        = int(self.model.item(MODEL.index('NPTS')).text()) 
    193         log_points  = str(self.model.item(MODEL.index('LOG_SPACED')).text()) == 'true' 
     190        npts = int(self.model.item(MODEL.index('NPTS')).text()) 
     191        log_points = str(self.model.item(MODEL.index('LOG_SPACED')).text()) == 'true' 
    194192 
    195193        return (q_range_min, q_range_max, npts, log_points, self.weighting) 
  • src/sas/qtgui/Perspectives/Fitting/SmearingWidget.py

    r672b8ab r1bc27f1  
    99 
    1010# Local UI 
    11 from UI.SmearingWidgetUI import Ui_SmearingWidgetUI 
     11from sas.qtgui.Perspectives.Fitting.UI.SmearingWidgetUI import Ui_SmearingWidgetUI 
    1212 
    1313class DataWidgetMapper(QtGui.QDataWidgetMapper): 
     
    4848        self.mapper = None 
    4949 
     50        self.parent = parent 
    5051        # Let only floats in the line edits 
    5152        self.txtSmearDown.setValidator(QtGui.QDoubleValidator()) 
  • src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingPerspectiveTest.py

    r83eb5208 r1bc27f1  
    4040        self.assertIsInstance(self.widget, QtGui.QWidget) 
    4141        self.assertIn("Fit panel", self.widget.windowTitle()) 
    42         self.assertEqual(self.widget.optimizer, "DREAM") 
     42        self.assertEqual(self.widget.optimizer, "Levenberg-Marquardt") 
    4343        self.assertEqual(len(self.widget.tabs), 1) 
    4444        self.assertEqual(self.widget.maxIndex, 1) 
  • src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py

    r672b8ab r1bc27f1  
    7474        item = QtGui.QStandardItem("test") 
    7575 
    76         widget_with_data = FittingWidget(dummy_manager(), data=item, id=3) 
     76        widget_with_data = FittingWidget(dummy_manager(), data=item, tab_id=3) 
    7777 
    7878        self.assertEqual(widget_with_data.data, data) 
Note: See TracChangeset for help on using the changeset viewer.