Changeset fa81e94 in sasview for src/sas/sasgui/perspectives/fitting


Ignore:
Timestamp:
Nov 15, 2017 4:33:09 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:
d4881f6a
Parents:
7c487846
Message:

Initial commit of the P(r) inversion perspective.
Code merged from Jeff Krzywon's ESS_GUI_Pr branch.
Also, minor 2to3 mods to sascalc/sasgui to enble error free setup.

Location:
src/sas/sasgui/perspectives/fitting
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/fitting/__init__.py

    • Property mode changed from 100644 to 100755
    r12d3e0e rfa81e94  
    11PLUGIN_ID = "Fitting plug-in 1.0" 
    22import os 
    3 from fitting import * 
     3from .fitting import * 
    44from distutils.filelist import findall 
    55def get_data_path(media): 
  • src/sas/sasgui/perspectives/fitting/basepage.py

    • Property mode changed from 100644 to 100755
    rf4a1433 rfa81e94  
    22Base Page for fitting 
    33""" 
    4 from __future__ import print_function 
     4 
    55 
    66import sys 
     
    1212import logging 
    1313import traceback 
    14 from Queue import Queue 
     14from queue import Queue 
    1515from threading import Thread 
    1616from collections import defaultdict 
     
    223223        self.popUpMenu = wx.Menu() 
    224224 
    225         wx_id = self._ids.next() 
     225        wx_id = next(self._ids) 
    226226        self._keep = wx.MenuItem(self.popUpMenu, wx_id, "Add bookmark", 
    227227                                 " Keep the panel status to recall it later") 
     
    623623        if self.model is not None: 
    624624            self.m_name = self.model.name 
    625         if name in self.saved_states.keys(): 
     625        if name in list(self.saved_states.keys()): 
    626626            previous_state = self.saved_states[name] 
    627627            # reset state of checkbox,textcrtl  and  regular parameters value 
     
    918918 
    919919        if len(self._disp_obj_dict) > 0: 
    920             for k, v in self._disp_obj_dict.iteritems(): 
     920            for k, v in self._disp_obj_dict.items(): 
    921921                self.state.disp_obj_dict[k] = v.type 
    922922 
     
    985985 
    986986            if len(self.disp_cb_dict) > 0: 
    987                 for k, v in self.disp_cb_dict.iteritems(): 
     987                for k, v in self.disp_cb_dict.items(): 
    988988                    if v is None: 
    989989                        self.state.disp_cb_dict[k] = v 
     
    994994                            self.state.disp_cb_dict[k] = None 
    995995            if len(self._disp_obj_dict) > 0: 
    996                 for k, v in self._disp_obj_dict.iteritems(): 
     996                for k, v in self._disp_obj_dict.items(): 
    997997                    self.state.disp_obj_dict[k] = v.type 
    998998 
     
    10961096            if name == "ArrayDispersion": 
    10971097 
    1098                 for item in self.disp_cb_dict.keys(): 
     1098                for item in list(self.disp_cb_dict.keys()): 
    10991099 
    11001100                    if hasattr(self.disp_cb_dict[item], "SetValue"): 
     
    11671167        :return: combo_box_position 
    11681168        """ 
    1169         for key, value in self.master_category_dict.iteritems(): 
     1169        for key, value in self.master_category_dict.items(): 
    11701170            formfactor = state.formfactorcombobox.split(":") 
    11711171            if isinstance(formfactor, list): 
     
    12191219        # select the current model 
    12201220        state._convert_to_sasmodels() 
    1221         state.categorycombobox = unicode(state.categorycombobox) 
     1221        state.categorycombobox = str(state.categorycombobox) 
    12221222        if state.categorycombobox in self.categorybox.Items: 
    12231223            category_pos = self.categorybox.Items.index( 
     
    12441244        structfactor_pos = 0 
    12451245        if state.structurecombobox is not None: 
    1246             state.structurecombobox = unicode(state.structurecombobox) 
     1246            state.structurecombobox = str(state.structurecombobox) 
    12471247            for ind_struct in range(self.structurebox.GetCount()): 
    12481248                if (self.structurebox.GetString(ind_struct) 
     
    13541354        self.weights = copy.deepcopy(state.weights) 
    13551355 
    1356         for key, disp_type in state.disp_obj_dict.iteritems(): 
     1356        for key, disp_type in state.disp_obj_dict.items(): 
    13571357            # disp_model = disp 
    13581358            disp_model = POLYDISPERSITY_MODELS[disp_type]() 
     
    14151415        """ 
    14161416        ids = iter(self._id_pool)  # Reusing ids for context menu 
    1417         for name, _ in self.state.saved_states.iteritems(): 
     1417        for name, _ in self.state.saved_states.items(): 
    14181418            self.number_saved_state += 1 
    14191419            # Add item in the context menu 
    1420             wx_id = ids.next() 
     1420            wx_id = next(ids) 
    14211421            msg = 'Save model and state %g' % self.number_saved_state 
    14221422            self.popUpMenu.Append(wx_id, name, msg) 
     
    23142314                    value_ctrl.SetValue(format_number(value)) 
    23152315 
    2316                 if name not in self.model.details.keys(): 
     2316                if name not in list(self.model.details.keys()): 
    23172317                    self.model.details[name] = ["", None, None] 
    23182318                old_low, old_high = self.model.details[name][1:3] 
     
    26752675        if disp_func is not None: 
    26762676            try: 
    2677                 return POLYDISPERSITY_MODELS.values().index(disp_func.__class__) 
     2677                return list(POLYDISPERSITY_MODELS.values()).index(disp_func.__class__) 
    26782678            except ValueError: 
    26792679                pass  # Fall through to default class 
    2680         return POLYDISPERSITY_MODELS.keys().index('gaussian') 
     2680        return list(POLYDISPERSITY_MODELS.keys()).index('gaussian') 
    26812681 
    26822682    def on_reset_clicked(self, event): 
     
    27702770        gui_manager = self._manager.parent 
    27712771        # loops through the panels [dic] 
    2772         for _, item2 in gui_manager.plot_panels.iteritems(): 
     2772        for _, item2 in gui_manager.plot_panels.items(): 
    27732773            data_title = self.data.group_id 
    27742774            # try to get all plots belonging to this control panel 
     
    33403340            if self.data.__class__.__name__ == "Data2D": 
    33413341                name = item[1] 
    3342                 if name in content.keys(): 
     3342                if name in list(content.keys()): 
    33433343                    values = content[name] 
    33443344                    check = values[0] 
     
    33893389                if not item[1] in orient_param: 
    33903390                    name = item[1] 
    3391                     if name in content.keys(): 
     3391                    if name in list(content.keys()): 
    33923392                        check = content[name][0] 
    33933393                        # Avoid changing combox content 
     
    36153615        sizer_cat = wx.BoxSizer(wx.HORIZONTAL) 
    36163616        self.mbox_description.SetForegroundColour(wx.RED) 
    3617         wx_id = self._ids.next() 
     3617        wx_id = next(self._ids) 
    36183618        self.model_func = wx.Button(self, wx_id, 'Help', size=(80, 23)) 
    36193619        self.model_func.Bind(wx.EVT_BUTTON, self.on_function_help_clicked, 
    36203620                             id=wx_id) 
    36213621        self.model_func.SetToolTipString("Full Model Function Help") 
    3622         wx_id = self._ids.next() 
     3622        wx_id = next(self._ids) 
    36233623        self.model_help = wx.Button(self, wx_id, 'Description', size=(80, 23)) 
    36243624        self.model_help.Bind(wx.EVT_BUTTON, self.on_model_help_clicked, 
    36253625                             id=wx_id) 
    36263626        self.model_help.SetToolTipString("Short Model Function Description") 
    3627         wx_id = self._ids.next() 
     3627        wx_id = next(self._ids) 
    36283628        self.model_view = wx.Button(self, wx_id, "Show 2D", size=(80, 23)) 
    36293629        self.model_view.Bind(wx.EVT_BUTTON, self._onModel2D, id=wx_id) 
  • src/sas/sasgui/perspectives/fitting/fit_thread.py

    • Property mode changed from 100644 to 100755
    rf4a1433 rfa81e94  
    1111 
    1212def map_apply(arguments): 
    13     return apply(arguments[0], arguments[1:]) 
     13    return arguments[0](*arguments[1:]) 
    1414 
    1515class FitThread(CalcThread): 
     
    4949        except KeyboardInterrupt: 
    5050            msg = "Fitting: terminated by the user." 
    51             raise KeyboardInterrupt, msg 
     51            raise KeyboardInterrupt(msg) 
    5252 
    5353    def compute(self): 
     
    7272                list_map_get_attr.append(map_getattr) 
    7373            #from multiprocessing import Pool 
    74             inputs = zip(list_map_get_attr, self.fitter, list_fit_function, 
     74            inputs = list(zip(list_map_get_attr, self.fitter, list_fit_function, 
    7575                         list_q, list_q, list_handler, list_curr_thread, 
    76                          list_reset_flag) 
    77             result = map(map_apply, inputs) 
     76                         list_reset_flag)) 
     77            result = list(map(map_apply, inputs)) 
    7878 
    7979            self.complete(result=result, 
     
    8484                          elapsed=time.time() - self.starttime) 
    8585 
    86         except KeyboardInterrupt, msg: 
     86        except KeyboardInterrupt as msg: 
    8787            # Thread was interrupted, just proceed and re-raise. 
    8888            # Real code should not print, but this is an example... 
  • src/sas/sasgui/perspectives/fitting/fitpage.py

    • Property mode changed from 100644 to 100755
    r3bd677b rfa81e94  
    281281 
    282282        # Fit button 
    283         self.btFit = wx.Button(self, self._ids.next(), 'Fit') 
     283        self.btFit = wx.Button(self, next(self._ids), 'Fit') 
    284284        self.default_bt_colour = self.btFit.GetDefaultAttributes() 
    285285        self.btFit.Bind(wx.EVT_BUTTON, self._onFit, id=self.btFit.GetId()) 
     
    377377 
    378378        # Update and Draw button 
    379         self.draw_button = wx.Button(self, self._ids.next(), 'Compute') 
     379        self.draw_button = wx.Button(self, next(self._ids), 'Compute') 
    380380        self.draw_button.Bind(wx.EVT_BUTTON, 
    381381                              self._onDraw, id=self.draw_button.GetId()) 
     
    532532        self.qmin.Bind(wx.EVT_TEXT, self.on_qrange_text) 
    533533        self.qmax.Bind(wx.EVT_TEXT, self.on_qrange_text) 
    534         wx_id = self._ids.next() 
     534        wx_id = next(self._ids) 
    535535        self.reset_qrange = wx.Button(self, wx_id, 'Reset') 
    536536 
     
    540540        sizer = wx.GridSizer(5, 5, 2, 6) 
    541541 
    542         self.btEditMask = wx.Button(self, self._ids.next(), 'Editor') 
     542        self.btEditMask = wx.Button(self, next(self._ids), 'Editor') 
    543543        self.btEditMask.Bind(wx.EVT_BUTTON, self._onMask, 
    544544                             id=self.btEditMask.GetId()) 
     
    660660        self.text_disp_min.Show(True) 
    661661 
    662         for item in self.model.dispersion.keys(): 
     662        for item in list(self.model.dispersion.keys()): 
    663663            if not self.magnetic_on: 
    664664                if item in self.model.magnetic_params: 
     
    675675 
    676676                iy += 1 
    677                 for p in self.model.dispersion[item].keys(): 
     677                for p in list(self.model.dispersion[item].keys()): 
    678678 
    679679                    if p == "width": 
     
    765765                disp_box = wx.ComboBox(self, wx.ID_ANY, size=(65, -1), 
    766766                                       style=wx.CB_READONLY, name='%s' % name1) 
    767                 for key, value in POLYDISPERSITY_MODELS.iteritems(): 
     767                for key, value in POLYDISPERSITY_MODELS.items(): 
    768768                    name_disp = str(key) 
    769769                    disp_box.Append(name_disp, value) 
     
    779779                          wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
    780780        first_orient = True 
    781         for item in self.model.dispersion.keys(): 
     781        for item in list(self.model.dispersion.keys()): 
    782782            if not self.magnetic_on: 
    783783                if item in self.model.magnetic_params: 
     
    795795 
    796796                iy += 1 
    797                 for p in self.model.dispersion[item].keys(): 
     797                for p in list(self.model.dispersion[item].keys()): 
    798798 
    799799                    if p == "width": 
     
    929929                disp_box = wx.ComboBox(self, wx.ID_ANY, size=(65, -1), 
    930930                                style=wx.CB_READONLY, name='%s' % name1) 
    931                 for key, value in POLYDISPERSITY_MODELS.iteritems(): 
     931                for key, value in POLYDISPERSITY_MODELS.items(): 
    932932                    name_disp = str(key) 
    933933                    disp_box.Append(name_disp, value) 
     
    13701370            except: 
    13711371                tcrtl.SetBackgroundColour("pink") 
    1372                 msg = "Model Error:wrong value entered : %s" % sys.exc_value 
     1372                msg = "Model Error:wrong value entered : %s" % sys.exc_info()[1] 
    13731373                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    13741374                return 
     
    14821482                else: 
    14831483                    tcrtl.SetBackgroundColour("pink") 
    1484                     msg = "Model Error:wrong value entered : %s" % sys.exc_value 
     1484                    msg = "Model Error:wrong value entered : %s" % sys.exc_info()[1] 
    14851485                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    14861486                    return 
    14871487            except: 
    14881488                tcrtl.SetBackgroundColour("pink") 
    1489                 msg = "Model Error:wrong value entered : %s" % sys.exc_value 
     1489                msg = "Model Error:wrong value entered : %s" % sys.exc_info()[1] 
    14901490                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    14911491                return 
     
    17331733        ind = 0 
    17341734        while(ind < len(list)): 
    1735             for key, val in list.items(): 
     1735            for key, val in list(list.items()): 
    17361736                if val == ind: 
    17371737                    fun_box.Append(key, val) 
     
    18651865                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg, 
    18661866                                               info="error")) 
    1867                     raise ValueError, msg 
     1867                    raise ValueError(msg) 
    18681868 
    18691869            else: 
     
    18771877                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg, 
    18781878                                               info="error")) 
    1879                     raise ValueError, msg 
     1879                    raise ValueError(msg) 
    18801880                # Maximum value of data 
    18811881                qmax = math.sqrt(x * x + y * y) 
     
    21182118        self._on_fit_complete() 
    21192119        if out is None or not np.isfinite(chisqr): 
    2120             raise ValueError, "Fit error occured..." 
     2120            raise ValueError("Fit error occured...") 
    21212121 
    21222122        is_modified = False 
     
    21932193                i += 1 
    21942194            else: 
    2195                 raise ValueError, "onsetValues: Invalid parameters..." 
     2195                raise ValueError("onsetValues: Invalid parameters...") 
    21962196        # Show error title when any errors displayed 
    21972197        if has_error: 
     
    29512951 
    29522952        # type can be either Guassian or Array 
    2953         if len(self.model.dispersion.values()) > 0: 
    2954             type = self.model.dispersion.values()[0]["type"] 
     2953        if len(list(self.model.dispersion.values())) > 0: 
     2954            type = list(self.model.dispersion.values())[0]["type"] 
    29552955        else: 
    29562956            type = "Gaussian" 
  • src/sas/sasgui/perspectives/fitting/fitpanel.py

    • Property mode changed from 100644 to 100755
    r69363c7 rfa81e94  
    9494            batch_state = self.sim_page.set_state() 
    9595 
    96         for uid, page in self.opened_pages.iteritems(): 
     96        for uid, page in self.opened_pages.items(): 
    9797            data = page.get_data() 
    9898            # state must be cloned 
     
    135135        if uid not in self.opened_pages: 
    136136            msg = "Fitpanel cannot find ID: %s in self.opened_pages" % str(uid) 
    137             raise ValueError, msg 
     137            raise ValueError(msg) 
    138138        else: 
    139139            return self.opened_pages[uid] 
     
    217217        page_is_opened = False 
    218218        if state is not None: 
    219             for uid, panel in self.opened_pages.iteritems(): 
     219            for uid, panel in self.opened_pages.items(): 
    220220                # Don't return any panel is the exact same page is created 
    221221                if uid == panel.uid and panel.data == state.data: 
     
    396396        """ 
    397397        if data.__class__.__name__ != "list": 
    398             raise ValueError, "Fitpanel delete_data expect list of id" 
     398            raise ValueError("Fitpanel delete_data expect list of id") 
    399399        else: 
    400             for page in self.opened_pages.values(): 
     400            for page in list(self.opened_pages.values()): 
    401401                pos = self.GetPageIndex(page) 
    402402                temp_data = page.get_data() 
     
    433433                data_2d_list.append(data) 
    434434        page = None 
    435         for p in self.opened_pages.values(): 
     435        for p in list(self.opened_pages.values()): 
    436436            # check if there is an empty page to fill up 
    437437            if not check_data_validity(p.get_data()) and p.batch_on: 
     
    503503                return None 
    504504        focused_page = self.GetPage(self.GetSelection()) 
    505         for page in self.opened_pages.values(): 
     505        for page in list(self.opened_pages.values()): 
    506506            # check if the selected data existing in the fitpanel 
    507507            pos = self.GetPageIndex(page) 
     
    592592        if selected_page in page_finder: 
    593593            # Delete the name of the page into the list of open page 
    594             for uid, list in self.opened_pages.iteritems(): 
     594            for uid, list in self.opened_pages.items(): 
    595595                # Don't return any panel is the exact same page is created 
    596596                if flag and selected_page.uid == uid: 
     
    600600 
    601601        # Delete the name of the page into the list of open page 
    602         for uid, list in self.opened_pages.iteritems(): 
     602        for uid, list in self.opened_pages.items(): 
    603603            # Don't return any panel is the exact same page is created 
    604604            if selected_page.uid == uid: 
  • src/sas/sasgui/perspectives/fitting/fitproblem.py

    • Property mode changed from 100644 to 100755
    r251ef684 rfa81e94  
    309309        self._smear_on = flag 
    310310        if fid is None: 
    311             for value in self.values(): 
     311            for value in list(self.values()): 
    312312                value.enable_smearing(flag) 
    313313        elif fid in self: 
     
    320320        """ 
    321321        if fid is None: 
    322             for value in self.values(): 
     322            for value in list(self.values()): 
    323323                value.set_smearer(smearer) 
    324324        elif fid in self: 
     
    336336        """ 
    337337        if fid is None: 
    338             for value in self.values(): 
     338            for value in list(self.values()): 
    339339                value.save_model_name(name) 
    340340        elif fid in self: 
     
    346346        result = [] 
    347347        if fid is None: 
    348             for value in self.values(): 
     348            for value in list(self.values()): 
    349349                result.append(value.get_name()) 
    350350        elif fid in self: 
     
    360360        self.model = model 
    361361        if fid is None: 
    362             for value in self.values(): 
     362            for value in list(self.values()): 
    363363                value.set_model(self.model) 
    364364        elif fid in self: 
     
    456456        """ 
    457457        if fid is None: 
    458             for value in self.values(): 
     458            for value in list(self.values()): 
    459459                value.set_model_param(name, value) 
    460460        elif fid in self: 
     
    486486        """ 
    487487        self.scheduled = schedule 
    488         for value in self.values(): 
     488        for value in list(self.values()): 
    489489            value.schedule_tofit(schedule) 
    490490 
     
    502502        self.qmax = qmax 
    503503        if fid is None: 
    504             for value in self.values(): 
     504            for value in list(self.values()): 
    505505                value.set_range(self.qmin, self.qmax) 
    506506        elif fid in self: 
     
    519519        """ 
    520520        if fid is None: 
    521             for value in self.values(): 
     521            for value in list(self.values()): 
    522522                value.set_weight(flag=flag, is2d=is2d) 
    523523        elif fid in self: 
     
    536536        """ 
    537537        if fid is None: 
    538             for value in self.values(): 
     538            for value in list(self.values()): 
    539539                value.clear_model_param() 
    540540        elif fid in self: 
     
    545545        return fitproblem contained in this dictionary 
    546546        """ 
    547         return self.values() 
     547        return list(self.values()) 
    548548 
    549549    def set_result(self, result, fid): 
  • src/sas/sasgui/perspectives/fitting/fitting.py

    • Property mode changed from 100644 to 100755
    rc416a17 rfa81e94  
    1111#copyright 2009, University of Tennessee 
    1212################################################################################ 
    13 from __future__ import print_function 
     13 
    1414 
    1515import re 
     
    142142        Given an ID create a fitproblem container 
    143143        """ 
    144         if page_id in self.page_finder.iterkeys(): 
     144        if page_id in iter(self.page_finder.keys()): 
    145145            del self.page_finder[page_id] 
    146146 
     
    335335            if temp: 
    336336                # Set the new plugin model list for all fit pages 
    337                 for uid, page in self.fit_panel.opened_pages.iteritems(): 
     337                for uid, page in self.fit_panel.opened_pages.items(): 
    338338                    if hasattr(page, "formfactorbox"): 
    339339                        page.model_list_box = temp 
     
    350350                                page.formfactorbox.SetLabel(current_val) 
    351351        except: 
    352             logger.error("update_custom_combo: %s", sys.exc_value) 
     352            logger.error("update_custom_combo: %s", sys.exc_info()[1]) 
    353353 
    354354    def set_edit_menu(self, owner): 
     
    556556        else: 
    557557            if len(data_list) > MAX_NBR_DATA: 
    558                 from fitting_widgets import DataDialog 
     558                from .fitting_widgets import DataDialog 
    559559                dlg = DataDialog(data_list=data_list, nb_data=MAX_NBR_DATA) 
    560560                if dlg.ShowModal() == wx.ID_OK: 
     
    576576                        self.add_fit_page(data=[data]) 
    577577            except: 
    578                 msg = "Fitting set_data: " + str(sys.exc_value) 
     578                msg = "Fitting set_data: " + str(sys.exc_info()[1]) 
    579579                wx.PostEvent(self.parent, StatusEvent(status=msg, info="error")) 
    580580 
     
    590590                msg = "Fitting: cannot deal with the theory received" 
    591591                evt = StatusEvent(status=msg, info="error") 
    592                 logger.error("set_theory " + msg + "\n" + str(sys.exc_value)) 
     592                logger.error("set_theory " + msg + "\n" + str(sys.exc_info()[1])) 
    593593                wx.PostEvent(self.parent, evt) 
    594594 
     
    602602        """ 
    603603        from pagestate import PageState 
    604         from simfitpage import SimFitPageState 
     604        from .simfitpage import SimFitPageState 
    605605        if isinstance(state, PageState): 
    606606            state = state.clone() 
     
    713713        if fid is None: 
    714714            return 
    715         if uid in self.page_finder.keys(): 
     715        if uid in list(self.page_finder.keys()): 
    716716            self.page_finder[uid].set_weight(flag=flag, is2d=is2d) 
    717717 
     
    726726        :param qmax: maximum  value of the fit range 
    727727        """ 
    728         if uid in self.page_finder.keys(): 
     728        if uid in list(self.page_finder.keys()): 
    729729            self.page_finder[uid].set_range(qmin=qmin, qmax=qmax, fid=fid) 
    730730 
     
    737737        :param uid: the id related to a page contaning fitting information 
    738738        """ 
    739         if uid in self.page_finder.keys(): 
     739        if uid in list(self.page_finder.keys()): 
    740740            self.page_finder[uid].schedule_tofit(value) 
    741741 
     
    756756        """ 
    757757        sim_page_id = self.sim_page.uid 
    758         for uid, value in self.page_finder.iteritems(): 
     758        for uid, value in self.page_finder.items(): 
    759759            if uid != sim_page_id and uid != self.batch_page.uid: 
    760760                model_list = value.get_model() 
     
    821821        Stop the fit 
    822822        """ 
    823         if uid in self.fit_thread_list.keys(): 
     823        if uid in list(self.fit_thread_list.keys()): 
    824824            calc_fit = self.fit_thread_list[uid] 
    825825            if calc_fit is not  None and calc_fit.isrunning(): 
     
    833833        batch_flag = self.batch_page is not None and uid == self.batch_page.uid 
    834834        if sim_flag or batch_flag: 
    835             for uid, value in self.page_finder.iteritems(): 
     835            for uid, value in self.page_finder.items(): 
    836836                if value.get_scheduled() == 1: 
    837                     if uid in self.fit_panel.opened_pages.keys(): 
     837                    if uid in list(self.fit_panel.opened_pages.keys()): 
    838838                        panel = self.fit_panel.opened_pages[uid] 
    839839                        panel._on_fit_complete() 
     
    852852        :param draw: Determine if the theory needs to be plot 
    853853        """ 
    854         if uid not in self.page_finder.keys(): 
     854        if uid not in list(self.page_finder.keys()): 
    855855            return 
    856856        self.page_finder[uid].enable_smearing(flag=enable_smearer) 
     
    964964        list_page_id = [] 
    965965        fit_id = 0 
    966         for page_id, page_info in self.page_finder.iteritems(): 
     966        for page_id, page_info in self.page_finder.items(): 
    967967            # For simulfit (uid give with None), do for-loop 
    968968            # if uid is specified (singlefit), do it only on the page. 
     
    991991 
    992992                    pars = [str(element[1]) for element in page.param_toFit] 
    993                     fitproblem_list = page_info.values() 
     993                    fitproblem_list = list(page_info.values()) 
    994994                    for fitproblem in  fitproblem_list: 
    995995                        if sim_fitter is None: 
     
    10131013            except: 
    10141014                raise 
    1015                 msg = "Fitting error: %s" % str(sys.exc_value) 
     1015                msg = "Fitting error: %s" % str(sys.exc_info()[1]) 
    10161016                evt = StatusEvent(status=msg, info="error", type="stop") 
    10171017                wx.PostEvent(self.parent, evt) 
     
    10701070        :param fid: the id of the fitproblem(data, model, range,etc) 
    10711071        """ 
    1072         if uid not in self.page_finder.keys(): 
     1072        if uid not in list(self.page_finder.keys()): 
    10731073            return 
    10741074        fitproblemList = self.page_finder[uid].get_fit_problem(fid) 
     
    11161116                wx.PostEvent(self.parent, evt) 
    11171117        except: 
    1118             msg = "Creating Fit page: %s" % sys.exc_value 
     1118            msg = "Creating Fit page: %s" % sys.exc_info()[1] 
    11191119            wx.PostEvent(self.parent, StatusEvent(status=msg, info="error")) 
    11201120 
     
    11961196        # case that uid is not specified 
    11971197        if uid is None: 
    1198             for page_id in self.page_finder.keys(): 
     1198            for page_id in list(self.page_finder.keys()): 
    11991199                self.page_finder[page_id].schedule_tofit(value) 
    12001200        # when uid is given 
    12011201        else: 
    1202             if uid in self.page_finder.keys(): 
     1202            if uid in list(self.page_finder.keys()): 
    12031203                self.page_finder[uid].schedule_tofit(value) 
    12041204 
     
    12341234        panel = self.plot_panel 
    12351235        if panel is None: 
    1236             raise ValueError, "Fitting:_onSelect: NonType panel" 
     1236            raise ValueError("Fitting:_onSelect: NonType panel") 
    12371237        Plugin.on_perspective(self, event=event) 
    12381238        self.select_data(panel) 
     
    12671267        """ 
    12681268        uid = page_id[0] 
    1269         if uid in self.fit_thread_list.keys(): 
     1269        if uid in list(self.fit_thread_list.keys()): 
    12701270            del self.fit_thread_list[uid] 
    12711271 
     
    12931293                #get all fittable parameters of the current model 
    12941294                for param in  model.getParamList(): 
    1295                     if param  not in batch_outputs.keys(): 
     1295                    if param  not in list(batch_outputs.keys()): 
    12961296                        batch_outputs[param] = [] 
    12971297                for param in model.getDispParamList(): 
    12981298                    if not model.is_fittable(param) and \ 
    1299                         param in batch_outputs.keys(): 
     1299                        param in list(batch_outputs.keys()): 
    13001300                        del batch_outputs[param] 
    13011301                # Add fitted parameters and their error 
    13021302                for param in res.param_list: 
    1303                     if param not in batch_outputs.keys(): 
     1303                    if param not in list(batch_outputs.keys()): 
    13041304                        batch_outputs[param] = [] 
    13051305                    err_param = "error on %s" % str(param) 
    1306                     if err_param not in batch_inputs.keys(): 
     1306                    if err_param not in list(batch_inputs.keys()): 
    13071307                        batch_inputs[err_param] = [] 
    13081308        msg = "" 
     
    13891389                #model 
    13901390                EMPTY = "-" 
    1391                 for key in batch_outputs.keys(): 
     1391                for key in list(batch_outputs.keys()): 
    13921392                    if key not in param_list and key not in ["Chi2", "Data"]: 
    13931393                        batch_outputs[key].append(EMPTY) 
     
    14321432        tbatch_outputs = {} 
    14331433        shownkeystr = cpage.get_copy_params() 
    1434         for key in batch_outputs.keys(): 
     1434        for key in list(batch_outputs.keys()): 
    14351435            if key in ["Chi2", "Data"] or shownkeystr.count(key) > 0: 
    14361436                tbatch_outputs[key] = batch_outputs[key] 
     
    14521452        model = fitproblem.get_model() 
    14531453        #fill batch result information 
    1454         if "Data" not in batch_outputs.keys(): 
     1454        if "Data" not in list(batch_outputs.keys()): 
    14551455            batch_outputs["Data"] = [] 
    14561456        from sas.sasgui.guiframe.data_processor import BatchCell 
     
    14821482        cell.object = [data, theory_data] 
    14831483        batch_outputs["Data"].append(cell) 
    1484         for key, value in data.meta_data.iteritems(): 
    1485             if key not in batch_inputs.keys(): 
     1484        for key, value in data.meta_data.items(): 
     1485            if key not in list(batch_inputs.keys()): 
    14861486                batch_inputs[key] = [] 
    14871487            #if key.lower().strip() != "loader": 
     
    14891489        param = "temperature" 
    14901490        if hasattr(data.sample, param): 
    1491             if param not in  batch_inputs.keys(): 
     1491            if param not in  list(batch_inputs.keys()): 
    14921492                batch_inputs[param] = [] 
    14931493            batch_inputs[param].append(data.sample.temperature) 
     
    15621562        except: 
    15631563            msg = ("Fit completed but the following error occurred: %s" 
    1564                    % sys.exc_value) 
     1564                   % sys.exc_info()[1]) 
    15651565            #import traceback; msg = "\n".join((traceback.format_exc(), msg)) 
    15661566            evt = StatusEvent(status=msg, info="warning", type="stop") 
     
    16501650        if model is None: 
    16511651            return 
    1652         if uid not in self.page_finder.keys(): 
     1652        if uid not in list(self.page_finder.keys()): 
    16531653            return 
    16541654        # save the name containing the data name with the appropriate model 
     
    19031903            return None 
    19041904        try: 
    1905             from model_thread import Calc2D 
     1905            from .model_thread import Calc2D 
    19061906            ## If a thread is already started, stop it 
    19071907            if (self.calc_2D is not None) and self.calc_2D.isrunning(): 
     
    19501950            return 
    19511951        try: 
    1952             from model_thread import Calc1D 
     1952            from .model_thread import Calc1D 
    19531953            ## If a thread is already started, stop it 
    19541954            if (self.calc_1D is not None) and self.calc_1D.isrunning(): 
     
    19891989        except: 
    19901990            msg = " Error occurred when drawing %s Model 1D: " % model.name 
    1991             msg += " %s" % sys.exc_value 
     1991            msg += " %s" % sys.exc_info()[1] 
    19921992            wx.PostEvent(self.parent, StatusEvent(status=msg)) 
    19931993 
  • src/sas/sasgui/perspectives/fitting/model_thread.py

    • Property mode changed from 100644 to 100755
    rc416a17 rfa81e94  
    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/sasgui/perspectives/fitting/simfitpage.py

    • Property mode changed from 100644 to 100755
    r0a3c740 rfa81e94  
    168168        i = 0 
    169169        for model in self.model_list: 
    170             model_id = self._format_id(model[1].keys()[0]) 
     170            model_id = self._format_id(list(model[1].keys())[0]) 
    171171            for saved_model in sim_state.model_list: 
    172172                save_id = saved_model.pop('name') 
     
    195195                param = item.pop('param_cbox') 
    196196                equality = item.pop('egal_txt') 
    197                 for key, value in init_map.items(): 
     197                for key, value in list(init_map.items()): 
    198198                    model_cbox = model_cbox.replace(key, value) 
    199199                    constraint_value = constraint_value.replace(key, value) 
    200                 for key, value in final_map.items(): 
     200                for key, value in list(final_map.items()): 
    201201                    model_cbox = model_cbox.replace(key, value) 
    202202                    constraint_value = constraint_value.replace(key, value) 
     
    328328        sizer.Add(tab_used, (iy, ix), (1, 1), 
    329329                  wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    330         for id, value in self.page_finder.iteritems(): 
     330        for id, value in self.page_finder.items(): 
    331331            if id not in self.parent.opened_pages: 
    332332                continue 
     
    757757        self.set_button.Disable() 
    758758 
    759         for id, model in self.constraint_dict.iteritems(): 
     759        for id, model in self.constraint_dict.items(): 
    760760            # check if all parameters have been selected for constraint 
    761761            # then do not allow add constraint on parameters 
    762762            self.model_cbox_left.Append(str(model.name), model) 
    763763        self.model_cbox_left.Select(0) 
    764         for id, model in self.constraint_dict.iteritems(): 
     764        for id, model in self.constraint_dict.items(): 
    765765            # check if all parameters have been selected for constraint 
    766766            # then do not allow add constraint on parameters 
     
    814814        model_right = self.model_cbox_right.GetValue() 
    815815        model_b = self.model_cbox_right.GetClientData(selection_b) 
    816         for id, dic_model in self.constraint_dict.iteritems(): 
     816        for id, dic_model in self.constraint_dict.items(): 
    817817            if model == dic_model: 
    818818                param_list = self.page_finder[id].get_param2fit() 
     
    857857        if len(self.constraints_list) != 0: 
    858858            nb_fit_param = 0 
    859             for id, model in self.constraint_dict.iteritems(): 
     859            for id, model in self.constraint_dict.items(): 
    860860                nb_fit_param += len(self.page_finder[id].get_param2fit()) 
    861861            # Don't add anymore 
     
    879879        model_cbox = wx.ComboBox(self, wx.ID_ANY, style=wx.CB_READONLY) 
    880880        model_cbox.Clear() 
    881         for id, model in self.constraint_dict.iteritems(): 
     881        for id, model in self.constraint_dict.items(): 
    882882            # check if all parameters have been selected for constraint 
    883883            # then do not allow add constraint on parameters 
     
    898898        # Remove button 
    899899        #btRemove = wx.Button(self, self.ID_REMOVE, 'Remove') 
    900         bt_remove = wx.Button(self, self._ids.next(), 'Remove') 
     900        bt_remove = wx.Button(self, next(self._ids), 'Remove') 
    901901        bt_remove.Bind(wx.EVT_BUTTON, self.on_remove, 
    902902                      id=bt_remove.GetId()) 
     
    931931        hide buttons related constraint 
    932932        """ 
    933         for id in self.page_finder.iterkeys(): 
     933        for id in self.page_finder.keys(): 
    934934            self.page_finder[id].clear_model_param() 
    935935 
     
    969969        model = model_cbox.GetClientData(n) 
    970970        param_list = [] 
    971         for id, dic_model in self.constraint_dict.iteritems(): 
     971        for id, dic_model in self.constraint_dict.items(): 
    972972            if model == dic_model: 
    973973                param_list = self.page_finder[id].get_param2fit() 
     
    10561056                msg += " in combobox to set constraint! " 
    10571057                wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    1058             for id, value in self.constraint_dict.iteritems(): 
     1058            for id, value in self.constraint_dict.items(): 
    10591059                if model == value: 
    10601060                    if constraint == "": 
     
    10801080                        return False 
    10811081 
    1082                     for fid in self.page_finder[id].iterkeys(): 
     1082                    for fid in self.page_finder[id].keys(): 
    10831083                        # wrap in param/constraint in str() to remove unicode 
    10841084                        self.page_finder[id].set_model_param(str(param), 
Note: See TracChangeset for help on using the changeset viewer.