Changeset b3e8629 in sasview for src/sas/qtgui/Perspectives/Fitting


Ignore:
Timestamp:
Nov 9, 2017 8:41:54 AM (6 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:
cee5c78
Parents:
749b715
git-author:
Piotr Rozyczko <rozyczko@…> (10/26/17 03:13:05)
git-committer:
Piotr Rozyczko <rozyczko@…> (11/09/17 08:41:54)
Message:

Initial changes to make SasView? run with python3

Location:
src/sas/qtgui/Perspectives/Fitting
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Perspectives/Fitting/FitThread.py

    ree18d33 rb3e8629  
    1414 
    1515def map_apply(arguments): 
    16     return apply(arguments[0], arguments[1:]) 
     16    return arguments[0](*arguments[1:]) 
    1717 
    1818class FitThread(CalcThread): 
     
    5555        except KeyboardInterrupt: 
    5656            msg = "Fitting: terminated by the user." 
    57             raise KeyboardInterrupt, msg 
     57            raise KeyboardInterrupt(msg) 
    5858 
    5959    def compute(self): 
     
    7171            list_q = [None]*fitter_size 
    7272 
    73             inputs = zip(list_map_get_attr, self.fitter, list_fit_function, 
     73            inputs = list(zip(list_map_get_attr, self.fitter, list_fit_function, 
    7474                         list_q, list_q, list_handler, list_curr_thread, 
    75                          list_reset_flag) 
    76             result = map(map_apply, inputs) 
     75                         list_reset_flag)) 
     76            result = list(map(map_apply, inputs)) 
    7777            results = (result, time.time()-self.starttime) 
    7878            if self.handler: 
     
    8181                return (results) 
    8282 
    83         except KeyboardInterrupt, msg: 
     83        except KeyboardInterrupt as msg: 
    8484            # Thread was interrupted, just proceed and re-raise. 
    8585            # Real code should not print, but this is an example... 
  • src/sas/qtgui/Perspectives/Fitting/FittingLogic.py

    ree18d33 rb3e8629  
    196196                msg = "Unable to find min/max/length of \n data named %s" % \ 
    197197                            self.data.filename 
    198                 raise ValueError, msg 
     198                raise ValueError(msg) 
    199199 
    200200        else: 
     
    206206                msg = "Unable to find min/max of \n data named %s" % \ 
    207207                            self.data.filename 
    208                 raise ValueError, msg 
     208                raise ValueError(msg) 
    209209            qmax = np.sqrt(x * x + y * y) 
    210210            npts = len(data.data) 
  • src/sas/qtgui/Perspectives/Fitting/FittingOptions.py

    r377ade1 rb3e8629  
    8080        Use options.FIT_FIELDS to assert which line edit gets what validator 
    8181        """ 
    82         for option in bumps.options.FIT_FIELDS.iterkeys(): 
     82        for option in bumps.options.FIT_FIELDS.keys(): 
    8383            (f_name, f_type) = bumps.options.FIT_FIELDS[option] 
    8484            validator = None 
     
    8686                validator = QtGui.QIntValidator() 
    8787                validator.setBottom(0) 
    88             elif f_type == types.FloatType: 
     88            elif f_type == float: 
    8989                validator = QtGui.QDoubleValidator() 
    9090                validator.setBottom(0) 
     
    153153 
    154154        # Update the BUMPS singleton 
    155         [bumpsUpdate(o) for o in self.config.values[self.current_fitter_id].iterkeys()] 
     155        [bumpsUpdate(o) for o in self.config.values[self.current_fitter_id].keys()] 
    156156 
    157157    def onHelp(self): 
     
    175175        if current_fitter is None: 
    176176            current_fitter = self.current_fitter_id 
    177         if option_id not in bumps.options.FIT_FIELDS.keys(): return None 
     177        if option_id not in list(bumps.options.FIT_FIELDS.keys()): return None 
    178178        option = option_id + '_' + current_fitter 
    179179        if not hasattr(self, option): return None 
     
    193193        """ 
    194194        options = self.config.values[fitter_id] 
    195         for option in options.iterkeys(): 
     195        for option in options.keys(): 
    196196            # Find the widget name of the option 
    197197            # e.g. 'samples' for 'dream' is 'self.samples_dream' 
  • src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py

    r14fa542 rb3e8629  
    1212from sas.qtgui.Perspectives.Fitting.FittingOptions import FittingOptions 
    1313from sas.qtgui.Perspectives.Fitting.GPUOptions import GPUOptions 
    14 from sas.qtgui.Perspectives.Fitting import ModelUtilities 
     14#from sas.qtgui.Perspectives.Fitting import ModelUtilities 
    1515 
    1616class FittingWindow(QtGui.QTabWidget): 
     
    6464        # GPU Options 
    6565        self.gpu_options_widget = GPUOptions(self) 
    66  
    67         self.menu_manager = ModelUtilities.ModelManager() 
    68         # TODO: reuse these in FittingWidget properly 
    69         self.model_list_box = self.menu_manager.get_model_list() 
    70         self.model_dictionary = self.menu_manager.get_model_dictionary() 
    7166 
    7267        #self.setWindowTitle('Fit panel - Active Fitting Optimizer: %s' % self.optimizer) 
     
    124119        Create a list if none exists and append if there's already a list 
    125120        """ 
    126         if item_key in self.dataToFitTab.keys(): 
    127             self.dataToFitTab[item_key].append(tab_name) 
     121        item_key_str = str(item_key) 
     122        if item_key_str in list(self.dataToFitTab.keys()): 
     123            self.dataToFitTab[item_key_str].append(tab_name) 
    128124        else: 
    129             self.dataToFitTab[item_key] = [tab_name] 
     125            self.dataToFitTab[item_key_str] = [tab_name] 
    130126 
    131127        #print "CURRENT dict: ", self.dataToFitTab 
     
    173169        Given name of the fitting tab - close it 
    174170        """ 
    175         for tab_index in xrange(len(self.tabs)): 
     171        for tab_index in range(len(self.tabs)): 
    176172            if self.tabText(tab_index) == tab_name: 
    177173                self.tabCloses(tab_index) 
     
    185181            return 
    186182        for index_to_delete in index_list: 
    187             if index_to_delete in self.dataToFitTab.keys(): 
    188                 for tab_name in self.dataToFitTab[index_to_delete]: 
     183            index_to_delete_str = str(index_to_delete) 
     184            if index_to_delete_str in list(self.dataToFitTab.keys()): 
     185                for tab_name in self.dataToFitTab[index_to_delete_str]: 
    189186                    # delete tab #index after corresponding data got removed 
    190187                    self.closeTabByName(tab_name) 
    191                 self.dataToFitTab.pop(index_to_delete) 
     188                self.dataToFitTab.pop(index_to_delete_str) 
    192189 
    193190        #print "CURRENT dict: ", self.dataToFitTab 
     
    209206        if not isinstance(data_item, list): 
    210207            msg = "Incorrect type passed to the Fitting Perspective" 
    211             raise AttributeError, msg 
     208            raise AttributeError(msg) 
    212209 
    213210        if not isinstance(data_item[0], QtGui.QStandardItem): 
    214211            msg = "Incorrect type passed to the Fitting Perspective" 
    215             raise AttributeError, msg 
     212            raise AttributeError(msg) 
    216213 
    217214        items = [data_item] if is_batch else data_item 
     
    220217            # Find the first unassigned tab. 
    221218            # If none, open a new tab. 
    222             available_tabs = list(map(lambda tab: tab.acceptsData(), self.tabs)) 
     219            available_tabs = list([tab.acceptsData() for tab in self.tabs]) 
    223220 
    224221            if numpy.any(available_tabs): 
  • src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py

    • Property mode changed from 100644 to 100755
    rd0dfcb2 rb3e8629  
    4444    Returns a list of all multi-shell parameters in 'model' 
    4545    """ 
    46     return list(filter(lambda par: "[" in par.name, model.iq_parameters)) 
     46    return list([par for par in model.iq_parameters if "[" in par.name]) 
    4747 
    4848def getMultiplicity(model): 
     
    156156    """ 
    157157    for i, item in enumerate(model_header_captions): 
    158         model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 
     158        #model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 
     159        model.setHeaderData(i, QtCore.Qt.Horizontal, item) 
    159160 
    160161    model.header_tooltips = model_header_tooltips 
     
    167168    model_header_error_captions.insert(2, header_error_caption) 
    168169    for i, item in enumerate(model_header_error_captions): 
    169         model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 
     170        model.setHeaderData(i, QtCore.Qt.Horizontal, item) 
    170171 
    171172    model_header_error_tooltips = model_header_tooltips 
     
    178179    """ 
    179180    for i, item in enumerate(poly_header_captions): 
    180         model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 
     181        model.setHeaderData(i, QtCore.Qt.Horizontal, item) 
    181182 
    182183    model.header_tooltips = poly_header_tooltips 
     
    190191    poly_header_error_captions.insert(2, header_error_caption) 
    191192    for i, item in enumerate(poly_header_error_captions): 
    192         model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 
     193        model.setHeaderData(i, QtCore.Qt.Horizontal, item) 
    193194 
    194195    poly_header_error_tooltips = poly_header_tooltips 
     
    202203    multishell_parameters = getIterParams(parameters) 
    203204 
    204     for i in xrange(index): 
     205    for i in range(index): 
    205206        for par in multishell_parameters: 
    206207            # Create the name: <param>[<i>], e.g. "sld1" for parameter "sld[n]" 
     
    396397 
    397398def binary_encode(i, digits): 
    398     return [i >> d & 1 for d in xrange(digits)] 
     399    return [i >> d & 1 for d in range(digits)] 
    399400 
    400401def getWeight(data, is2d, flag=None): 
  • src/sas/qtgui/Perspectives/Fitting/FittingWidget.py

    re00b76e rb3e8629  
    22import os 
    33from collections import defaultdict 
    4 from itertools import izip 
     4 
    55 
    66import logging 
     
    7070        if role == QtCore.Qt.ToolTipRole: 
    7171            if orientation == QtCore.Qt.Horizontal: 
    72                 return QtCore.QString(str(self.header_tooltips[section])) 
     72                return str(self.header_tooltips[section]) 
    7373 
    7474        return QtGui.QStandardItemModel.headerData(self, section, orientation, role) 
     
    359359        # Similarly on other tabs 
    360360        self.options_widget.setEnablementOnDataLoad() 
    361  
    362         # Reload the model 
    363361        self.onSelectModel() 
    364  
    365362        # Smearing tab 
    366363        self.smearing_widget.updateSmearing(self.data) 
     
    482479        model = str(self.cbModel.currentText()) 
    483480 
     481        # empty combobox forced to be read 
     482        if not model: 
     483            return 
    484484        # Reset structure factor 
    485485        self.cbStructureFactor.setCurrentIndex(0) 
     
    772772        """ 
    773773        """ 
    774         print "UPDATE FIT" 
     774        print("UPDATE FIT") 
    775775        pass 
    776776 
     
    778778        """ 
    779779        """ 
    780         print "FIT FAILED: ", reason 
     780        print("FIT FAILED: ", reason) 
    781781        pass 
    782782 
     
    823823        param_values = res.pvec     # array([ 0.36221662,  0.0146783 ]) 
    824824        param_stderr = res.stderr   # array([ 1.71293015,  1.71294233]) 
    825         params_and_errors = zip(param_values, param_stderr) 
    826         param_dict = dict(izip(param_list, params_and_errors)) 
     825        params_and_errors = list(zip(param_values, param_stderr)) 
     826        param_dict = dict(zip(param_list, params_and_errors)) 
    827827 
    828828        # Dictionary of fitted parameter: value, error 
     
    845845        Take func and throw it inside the model row loop 
    846846        """ 
    847         for row_i in xrange(self._model_model.rowCount()): 
     847        for row_i in range(self._model_model.rowCount()): 
    848848            func(row_i) 
    849849 
     
    860860            # internal so can use closure for param_dict 
    861861            param_name = str(self._model_model.item(row, 0).text()) 
    862             if param_name not in param_dict.keys(): 
     862            if param_name not in list(param_dict.keys()): 
    863863                return 
    864864            # modify the param value 
     
    872872            # Utility function for updateof polydispersity part of the main model 
    873873            param_name = str(self._model_model.item(row, 0).text())+'.width' 
    874             if param_name not in param_dict.keys(): 
     874            if param_name not in list(param_dict.keys()): 
    875875                return 
    876876            # modify the param value 
     
    887887                return str(self._model_model.item(row, 0).text()) 
    888888 
    889             [createItem(param_name) for param_name in param_dict.keys() if curr_param() == param_name] 
     889            [createItem(param_name) for param_name in list(param_dict.keys()) if curr_param() == param_name] 
    890890 
    891891            error_column.append(item) 
     
    931931            Take func and throw it inside the poly model row loop 
    932932            """ 
    933             for row_i in xrange(self._poly_model.rowCount()): 
     933            for row_i in range(self._poly_model.rowCount()): 
    934934                func(row_i) 
    935935 
     
    940940                return 
    941941            param_name = str(self._poly_model.item(row_i, 0).text()).rsplit()[-1] + '.width' 
    942             if param_name not in param_dict.keys(): 
     942            if param_name not in list(param_dict.keys()): 
    943943                return 
    944944            # modify the param value 
     
    963963                return str(self._poly_model.item(row_i, 0).text()).rsplit()[-1] + '.width' 
    964964 
    965             [createItem(param_name) for param_name in param_dict.keys() if poly_param() == param_name] 
     965            [createItem(param_name) for param_name in list(param_dict.keys()) if poly_param() == param_name] 
    966966 
    967967            error_column.append(item) 
     
    10001000            Take func and throw it inside the magnet model row loop 
    10011001            """ 
    1002             for row_i in xrange(self._model_model.rowCount()): 
     1002            for row_i in range(self._model_model.rowCount()): 
    10031003                func(row_i) 
    10041004 
     
    10071007            # internal so can use closure for param_dict 
    10081008            param_name = str(self._magnet_model.item(row, 0).text()) 
    1009             if param_name not in param_dict.keys(): 
     1009            if param_name not in list(param_dict.keys()): 
    10101010                return 
    10111011            # modify the param value 
     
    10251025                return str(self._magnet_model.item(row, 0).text()) 
    10261026 
    1027             [createItem(param_name) for param_name in param_dict.keys() if curr_param() == param_name] 
     1027            [createItem(param_name) for param_name in list(param_dict.keys()) if curr_param() == param_name] 
    10281028 
    10291029            error_column.append(item) 
     
    13031303            # Unparsable field 
    13041304            return 
    1305         parameter_name = str(self._model_model.data(name_index).toPyObject()) # sld, background etc. 
     1305        parameter_name = str(self._model_model.data(name_index)) #.toPyObject()) # sld, background etc. 
    13061306 
    13071307        # Update the parameter value - note: this supports +/-inf as well 
     
    13691369 
    13701370        return [str(model.item(row_index, 0).text()) 
    1371                 for row_index in xrange(model.rowCount()) 
     1371                for row_index in range(model.rowCount()) 
    13721372                if isChecked(row_index)] 
    13731373 
     
    14101410            fitted_data.symbol = 'Line' 
    14111411        # Notify the GUI manager so it can update the main model in DataExplorer 
    1412         GuiUtils.updateModelItemWithPlot(self._index, QtCore.QVariant(fitted_data), name) 
     1412        GuiUtils.updateModelItemWithPlot(self._index, fitted_data, name) 
    14131413 
    14141414    def createTheoryIndex(self, fitted_data): 
     
    14181418        name = self.nameFromData(fitted_data) 
    14191419        # Notify the GUI manager so it can create the theory model in DataExplorer 
    1420         new_item = GuiUtils.createModelItemWithPlot(QtCore.QVariant(fitted_data), name=name) 
     1420        new_item = GuiUtils.createModelItemWithPlot(fitted_data, name=name) 
    14211421        self.communicate.updateTheoryFromPerspectiveSignal.emit(new_item) 
    14221422 
     
    14721472        Thread returned error 
    14731473        """ 
    1474         print "Calculate Data failed with ", reason 
     1474        print("Calculate Data failed with ", reason) 
    14751475 
    14761476    def complete1D(self, return_data): 
     
    15691569            else: 
    15701570                # Create as many entries as current shells 
    1571                 for ishell in xrange(1, self.current_shell_displayed+1): 
     1571                for ishell in range(1, self.current_shell_displayed+1): 
    15721572                    # Remove [n] and add the shell numeral 
    15731573                    name = param_name[0:param_name.index('[')] + str(ishell) 
     
    15971597        # All possible polydisp. functions as strings in combobox 
    15981598        func = QtGui.QComboBox() 
    1599         func.addItems([str(name_disp) for name_disp in POLYDISPERSITY_MODELS.iterkeys()]) 
     1599        func.addItems([str(name_disp) for name_disp in POLYDISPERSITY_MODELS.keys()]) 
    16001600        # Set the default index 
    16011601        func.setCurrentIndex(func.findText(DEFAULT_POLYDISP_FUNCTION)) 
     
    16481648                lo = self.lstPoly.itemDelegate().poly_pd 
    16491649                hi = self.lstPoly.itemDelegate().poly_function 
    1650                 [self._poly_model.item(row_index, i).setEnabled(False) for i in xrange(lo, hi)] 
     1650                [self._poly_model.item(row_index, i).setEnabled(False) for i in range(lo, hi)] 
    16511651                return 
    16521652            except IOError: 
     
    16581658        self._poly_model.blockSignals(True) 
    16591659        max_range = self.lstPoly.itemDelegate().poly_filename 
    1660         [self._poly_model.item(row_index, i).setEnabled(True) for i in xrange(7)] 
     1660        [self._poly_model.item(row_index, i).setEnabled(True) for i in range(7)] 
    16611661        file_index = self._poly_model.index(row_index, self.lstPoly.itemDelegate().poly_filename) 
    1662         self._poly_model.setData(file_index, QtCore.QVariant("")) 
     1662        self._poly_model.setData(file_index, "") 
    16631663        self._poly_model.blockSignals(False) 
    16641664 
     
    16691669        nsigs = POLYDISPERSITY_MODELS[str(combo_string)].default['nsigmas'] 
    16701670 
    1671         self._poly_model.setData(npts_index, QtCore.QVariant(npts)) 
    1672         self._poly_model.setData(nsigs_index, QtCore.QVariant(nsigs)) 
     1671        self._poly_model.setData(npts_index, npts) 
     1672        self._poly_model.setData(nsigs_index, nsigs) 
    16731673 
    16741674        self.iterateOverModel(updateFunctionCaption) 
     
    16811681        datafile = QtGui.QFileDialog.getOpenFileName( 
    16821682            self, "Choose a weight file", "", "All files (*.*)", 
    1683             None, QtGui.QFileDialog.DontUseNativeDialog) 
     1683            QtGui.QFileDialog.DontUseNativeDialog) 
    16841684 
    16851685        if datafile is None or str(datafile)=='': 
     
    17101710        fname = os.path.basename(str(datafile)) 
    17111711        fname_index = self._poly_model.index(row_index, self.lstPoly.itemDelegate().poly_filename) 
    1712         self._poly_model.setData(fname_index, QtCore.QVariant(fname)) 
     1712        self._poly_model.setData(fname_index, fname) 
    17131713 
    17141714    def setMagneticModel(self): 
     
    17321732        top_index = self.kernel_module.multiplicity_info.number 
    17331733        shell_names = [] 
    1734         for i in xrange(1, top_index+1): 
     1734        for i in range(1, top_index+1): 
    17351735            for name in multi_names: 
    17361736                shell_names.append(name+str(i)) 
     
    17821782        func = QtGui.QComboBox() 
    17831783        # Available range of shells displayed in the combobox 
    1784         func.addItems([str(i) for i in xrange(param_length+1)]) 
     1784        func.addItems([str(i) for i in range(param_length+1)]) 
    17851785 
    17861786        # Respond to index change 
  • src/sas/qtgui/Perspectives/Fitting/ModelThread.py

    r6964d44 rb3e8629  
    6565        if self.data is None: 
    6666            msg = "Compute Calc2D receive data = %s.\n" % str(self.data) 
    67             raise ValueError, msg 
     67            raise ValueError(msg) 
    6868 
    6969        # Define matrix where data will be plotted 
  • src/sas/qtgui/Perspectives/Fitting/ModelUtilities.py

    r125c4be rb3e8629  
    22    Utilities to manage models 
    33""" 
    4 from __future__ import print_function 
     4 
    55 
    66import traceback 
     
    6868    except: 
    6969        msg = "Plugin %s error in __init__ \n\t: %s %s\n" % (str(name), 
    70                                                              str(sys.exc_type), 
     70                                                             str(sys.exc_info()[0]), 
    7171                                                             sys.exc_info()[1]) 
    7272        plugin_log(msg) 
     
    7878        except: 
    7979            msg = "Plugin %s: error writing function \n\t :%s %s\n " % \ 
    80                     (str(name), str(sys.exc_type), sys.exc_info()[1]) 
     80                    (str(name), str(sys.exc_info()[0]), sys.exc_info()[1]) 
    8181            plugin_log(msg) 
    8282            return None 
     
    138138    Class to check for problems with specific values 
    139139    """ 
    140     def __nonzero__(self): 
     140    def __bool__(self): 
    141141        type, value, tb = sys.exc_info() 
    142142        if type is not None and issubclass(type, py_compile.PyCompileError): 
    143143            print("Problem with", repr(value)) 
    144             raise type, value, tb 
     144            raise type(value).with_traceback(tb) 
    145145        return 1 
    146146 
     
    211211 
    212212        """ 
    213         if name not in self.mydict.keys(): 
     213        if name not in list(self.mydict.keys()): 
    214214            self.reset_list(name, mylist) 
    215215 
     
    292292        #Looking for plugins 
    293293        self.stored_plugins = self.findModels() 
    294         self.plugins = self.stored_plugins.values() 
    295         for name, plug in self.stored_plugins.iteritems(): 
     294        self.plugins = list(self.stored_plugins.values()) 
     295        for name, plug in self.stored_plugins.items(): 
    296296            self.model_dictionary[name] = plug 
    297297         
     
    322322        new_plugins = self.findModels() 
    323323        if len(new_plugins) > 0: 
    324             for name, plug in  new_plugins.iteritems(): 
    325                 if name not in self.stored_plugins.keys(): 
     324            for name, plug in  new_plugins.items(): 
     325                if name not in list(self.stored_plugins.keys()): 
    326326                    self.stored_plugins[name] = plug 
    327327                    self.plugins.append(plug) 
     
    338338        self.plugins = [] 
    339339        new_plugins = _find_models() 
    340         for name, plug in  new_plugins.iteritems(): 
    341             for stored_name, stored_plug in self.stored_plugins.iteritems(): 
     340        for name, plug in  new_plugins.items(): 
     341            for stored_name, stored_plug in self.stored_plugins.items(): 
    342342                if name == stored_name: 
    343343                    del self.stored_plugins[name] 
     
    358358 
    359359        """ 
    360         if int(evt.GetId()) in self.form_factor_dict.keys(): 
     360        if int(evt.GetId()) in list(self.form_factor_dict.keys()): 
    361361            from sasmodels.sasview_model import MultiplicationModel 
    362362            self.model_dictionary[MultiplicationModel.__name__] = MultiplicationModel 
     
    417417    __modelmanager = ModelManagerBase() 
    418418    cat_model_list = [__modelmanager.model_dictionary[model_name] for model_name \ 
    419                       in __modelmanager.model_dictionary.keys() \ 
    420                       if model_name not in __modelmanager.stored_plugins.keys()] 
     419                      in list(__modelmanager.model_dictionary.keys()) \ 
     420                      if model_name not in list(__modelmanager.stored_plugins.keys())] 
    421421 
    422422    CategoryInstaller.check_install(model_list=cat_model_list) 
  • src/sas/qtgui/Perspectives/Fitting/OptionsWidget.py

    r457d961 rb3e8629  
    9696        """ 
    9797        self.model = QtGui.QStandardItemModel() 
    98         for model_item in xrange(len(MODEL)): 
     98        for model_item in range(len(MODEL)): 
    9999            self.model.setItem(model_item, QtGui.QStandardItem()) 
    100100        # Attach slot 
  • src/sas/qtgui/Perspectives/Fitting/SmearingWidget.py

    • Property mode changed from 100644 to 100755
    rdc5ef15 rb3e8629  
    6565        """ 
    6666        self.model = QtGui.QStandardItemModel() 
    67         for model_item in xrange(len(MODEL)): 
     67        for model_item in range(len(MODEL)): 
    6868            self.model.setItem(model_item, QtGui.QStandardItem()) 
    6969        # Attach slot 
Note: See TracChangeset for help on using the changeset viewer.