Changeset 308fa87 in sasview


Ignore:
Timestamp:
Apr 27, 2012 5:04:53 PM (13 years ago)
Author:
Mathieu Doucet <doucetm@…>
Branches:
master, 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, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
ac2b835
Parents:
f992a06
Message:

Pep-8-ification

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fittingview/src/sans/perspectives/fitting/fitpage.py

    rf32d144 r308fa87  
    846846        ix = 0 
    847847        iy += 1 
    848         self.sizer4_4.Add((20,20),(iy,ix),(1,1),  
    849                           wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)   
    850         first_orient  = True 
     848        self.sizer4_4.Add((20, 20), (iy, ix), (1, 1), 
     849                          wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
     850        first_orient = True 
    851851        for item in self.model.dispersion.keys(): 
    852852            if  item in self.model.orientation_params: 
    853                 if not self.disp_cb_dict.has_key(item): 
    854                     self.disp_cb_dict[item]= None 
    855                 name0="Distribution of " + item 
    856                 name1=item+".width" 
    857                 name2=item+".npts" 
    858                 name3=item+".nsigmas" 
     853                if not item in self.disp_cb_dict: 
     854                    self.disp_cb_dict[item] = None 
     855                name0 = "Distribution of " + item 
     856                name1 = item + ".width" 
     857                name2 = item + ".npts" 
     858                name3 = item + ".nsigmas" 
    859859                 
    860                 if not self.model.details.has_key(name1): 
    861                     self.model.details [name1] = ["",None,None]                   
     860                if not name1 in self.model.details: 
     861                    self.model.details[name1] = ["", None, None] 
    862862  
    863  
    864863                iy += 1 
    865                 for p in self.model.dispersion[item].keys():  
    866          
    867                     if p=="width": 
     864                for p in self.model.dispersion[item].keys(): 
     865         
     866                    if p == "width": 
    868867                        ix = 0 
    869868                        cb = wx.CheckBox(self, -1, name0, (10, 10)) 
     
    871870                        cb.SetToolTipString("Check mark to fit") 
    872871                        wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 
    873                         self.sizer4_4.Add( cb,( iy, ix),(1,1),   
    874                                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE,  
    875                                            5) 
    876                         if self.data.__class__.__name__ ==  "Data2D" or \ 
     872                        self.sizer4_4.Add(cb, (iy, ix), (1, 1), 
     873                                wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 5) 
     874                        if self.data.__class__.__name__ == "Data2D" or \ 
    877875                                    self.enable2D: 
    878876                            cb.Show(True) 
     
    880878                            cb.Hide() 
    881879                        ix = 1 
    882                         value= self.model.getParam(name1) 
    883                         ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH/1.3, 
    884                                         20),style=wx.TE_PROCESS_ENTER) 
     880                        value = self.model.getParam(name1) 
     881                        ctl1 = self.ModelTextCtrl(self, -1, 
     882                                                  size=(_BOX_WIDTH / 1.3, 20), 
     883                                                  style=wx.TE_PROCESS_ENTER) 
    885884                        poly_tip = "Absolute Sigma for %s." % item 
    886885                        ctl1.SetToolTipString(poly_tip) 
    887                         ctl1.SetValue(str (format_number(value, True))) 
     886                        ctl1.SetValue(str(format_number(value, True))) 
    888887                        if self.data.__class__.__name__ == "Data2D" or \ 
    889888                                    self.enable2D: 
     
    891890                                values.SetLabel('PD[ratio], Sig[deg]') 
    892891                                poly_text = "PD(polydispersity for lengths):\n" 
    893                                 poly_text +=  "It should be a value between" 
    894                                 poly_text +=  "0 and 1\n" 
     892                                poly_text += "It should be a value between" 
     893                                poly_text += "0 and 1\n" 
    895894                                poly_text += "Sigma for angles: \n" 
    896895                                poly_text += "It is the STD (ratio*mean)" 
     
    903902                            ctl1.Hide() 
    904903                         
    905                         self.sizer4_4.Add(ctl1, (iy,ix),(1,1),wx.EXPAND) 
     904                        self.sizer4_4.Add(ctl1, (iy, ix), (1, 1), wx.EXPAND) 
    906905                        ## text to show error sign 
    907906                        ix = 2 
    908                         text2=wx.StaticText(self, -1, '+/-') 
    909                         self.sizer4_4.Add(text2,(iy, ix),(1,1), 
    910                                           wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    911  
    912                         text2.Hide()  
     907                        text2 = wx.StaticText(self, -1, '+/-') 
     908                        self.sizer4_4.Add(text2, (iy, ix), (1, 1), 
     909                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     910 
     911                        text2.Hide() 
    913912 
    914913                        ix = 3 
    915                         ctl2 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH/1.3,20),  
     914                        ctl2 = wx.TextCtrl(self, -1, 
     915                                           size=(_BOX_WIDTH / 1.3, 20), 
    916916                                           style=0) 
    917917                     
    918                         self.sizer4_4.Add(ctl2, (iy,ix),(1,1),  
    919                                           wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     918                        self.sizer4_4.Add(ctl2, (iy, ix), (1, 1), 
     919                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    920920 
    921921                        ctl2.Hide() 
    922                         if self.data.__class__.__name__ ==  "Data2D" or \ 
     922                        if self.data.__class__.__name__ == "Data2D" or \ 
    923923                                self.enable2D: 
    924                             if self.is_mac:   
     924                            if self.is_mac: 
    925925                                text2.Show(True) 
    926                                 ctl2.Show(True)   
     926                                ctl2.Show(True) 
    927927                             
    928928                        ix = 4 
    929                         ctl3 = self.ModelTextCtrl(self, -1,  
    930                                                   size=(_BOX_WIDTH/2,20),  
     929                        ctl3 = self.ModelTextCtrl(self, -1, 
     930                                                  size=(_BOX_WIDTH / 2, 20), 
    931931                                                  style=wx.TE_PROCESS_ENTER, 
    932                                 text_enter_callback = self._onparamRangeEnter) 
    933  
    934                         self.sizer4_4.Add(ctl3, (iy,ix),(1,1),  
    935                                           wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     932                                text_enter_callback=self._onparamRangeEnter) 
     933 
     934                        self.sizer4_4.Add(ctl3, (iy, ix), (1, 1), 
     935                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    936936 
    937937                        ctl3.Hide() 
    938938                 
    939939                        ix = 5 
    940                         ctl4 = self.ModelTextCtrl(self, -1,  
    941                             size=(_BOX_WIDTH/2,20), style=wx.TE_PROCESS_ENTER, 
    942                                 text_enter_callback = self._onparamRangeEnter) 
    943                         self.sizer4_4.Add(ctl4, (iy,ix),(1,1),  
    944                                           wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     940                        ctl4 = self.ModelTextCtrl(self, -1, 
     941                            size=(_BOX_WIDTH / 2, 20), 
     942                            style=wx.TE_PROCESS_ENTER, 
     943                            text_enter_callback=self._onparamRangeEnter) 
     944                        self.sizer4_4.Add(ctl4, (iy, ix), (1, 1), 
     945                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    945946                        ctl4.Hide() 
    946947                         
    947                         if self.data.__class__.__name__ ==  "Data2D" or \ 
     948                        if self.data.__class__.__name__ == "Data2D" or \ 
    948949                                self.enable2D: 
    949950                            ctl3.Show(True) 
    950                             ctl4.Show(True)  
     951                            ctl4.Show(True) 
    951952                              
    952                     elif p=="npts": 
    953                             ix = 6 
    954                             value= self.model.getParam(name2) 
    955                             Tctl = self.ModelTextCtrl(self, -1,  
    956                                                      size=(_BOX_WIDTH/2.2, 20), 
    957                                                 style=wx.TE_PROCESS_ENTER) 
    958                              
    959                             Tctl.SetValue(str (format_number(value))) 
    960                             if self.data.__class__.__name__ ==  "Data2D" or \ 
    961                                     self.enable2D: 
    962                                 Tctl.Show(True) 
    963                             else: 
    964                                 Tctl.Hide() 
    965                             self.sizer4_4.Add(Tctl, (iy,ix),(1,1), 
    966                                                wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    967                             self.fixed_param.append([None,name2, Tctl,None,None, 
    968                                                       None, None,None]) 
    969                             self.orientation_params_disp.append([None,name2,  
    970                                                     Tctl,None,None, 
    971                                                       None, None,None]) 
    972                     elif p=="nsigmas": 
    973                             ix = 7 
    974                             value= self.model.getParam(name3) 
    975                             Tct2 = self.ModelTextCtrl(self, -1,  
    976                                                       size=(_BOX_WIDTH/2.2,20), 
    977                                                 style=wx.TE_PROCESS_ENTER) 
    978                              
    979                             Tct2.SetValue(str (format_number(value))) 
    980                             if self.data.__class__.__name__ ==  "Data2D" or \ 
    981                                     self.enable2D: 
    982                                 Tct2.Show(True) 
    983                             else: 
    984                                 Tct2.Hide() 
    985                             self.sizer4_4.Add(Tct2, (iy,ix),(1,1), 
    986                                                wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    987  
    988  
    989                             self.fixed_param.append([None,name3, Tct2 
    990                                                  ,None,None, None, None,None])     
    991                                                         
    992                             self.orientation_params_disp.append([None,name3,  
    993                                             Tct2 ,None,None, None, None,None]) 
    994          
    995  
    996                 ix = 8       
    997                 disp_box = wx.ComboBox(self, -1,size=(65,-1), 
    998                                 style=wx.CB_READONLY, name = '%s'% name1) 
     953                    elif p == "npts": 
     954                        ix = 6 
     955                        value = self.model.getParam(name2) 
     956                        Tctl = self.ModelTextCtrl(self, -1, 
     957                                                 size=(_BOX_WIDTH / 2.2, 20), 
     958                                                 style=wx.TE_PROCESS_ENTER) 
     959                         
     960                        Tctl.SetValue(str(format_number(value))) 
     961                        if self.data.__class__.__name__ == "Data2D" or \ 
     962                                self.enable2D: 
     963                            Tctl.Show(True) 
     964                        else: 
     965                            Tctl.Hide() 
     966                        self.sizer4_4.Add(Tctl, (iy, ix), (1, 1), 
     967                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     968                        self.fixed_param.append([None, name2, Tctl, None, None, 
     969                                                 None, None, None]) 
     970                        self.orientation_params_disp.append([None, name2, 
     971                                                             Tctl, None, None, 
     972                                                             None, None, None]) 
     973                    elif p == "nsigmas": 
     974                        ix = 7 
     975                        value = self.model.getParam(name3) 
     976                        Tct2 = self.ModelTextCtrl(self, -1, 
     977                                                  size=(_BOX_WIDTH / 2.2, 20), 
     978                                                  style=wx.TE_PROCESS_ENTER) 
     979                         
     980                        Tct2.SetValue(str(format_number(value))) 
     981                        if self.data.__class__.__name__ == "Data2D" or \ 
     982                                self.enable2D: 
     983                            Tct2.Show(True) 
     984                        else: 
     985                            Tct2.Hide() 
     986                        self.sizer4_4.Add(Tct2, (iy, ix), (1, 1), 
     987                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     988 
     989                        self.fixed_param.append([None, name3, Tct2, 
     990                                                 None, None, None, None, None]) 
     991                                                    
     992                        self.orientation_params_disp.append([None, name3, 
     993                                        Tct2, None, None, None, None, None]) 
     994 
     995                ix = 8 
     996                disp_box = wx.ComboBox(self, -1, size=(65, -1), 
     997                                style=wx.CB_READONLY, name='%s' % name1) 
    999998                for key, value in self.polydisp.iteritems(): 
    1000999                    name_disp = str(key) 
    1001                     disp_box.Append(name_disp,value) 
    1002                     disp_box.SetStringSelection("gaussian")  
    1003                 wx.EVT_COMBOBOX(disp_box,-1, self._on_disp_func)       
    1004                 self.sizer4_4.Add(disp_box,(iy,ix),(1,1), wx.EXPAND) 
    1005                 self.fittable_param.append([cb,name1,ctl1,text2, 
     1000                    disp_box.Append(name_disp, value) 
     1001                    disp_box.SetStringSelection("gaussian") 
     1002                wx.EVT_COMBOBOX(disp_box, -1, self._on_disp_func) 
     1003                self.sizer4_4.Add(disp_box, (iy, ix), (1, 1), wx.EXPAND) 
     1004                self.fittable_param.append([cb, name1, ctl1, text2, 
    10061005                                            ctl2, ctl3, ctl4, disp_box]) 
    1007                 self.orientation_params_disp.append([cb,name1,ctl1, 
     1006                self.orientation_params_disp.append([cb, name1, ctl1, 
    10081007                                            text2, ctl2, ctl3, ctl4, disp_box]) 
    10091008                        
     
    10141013                    disp_box.Hide() 
    10151014         
    1016  
    1017         self.state.disp_cb_dict = copy.deepcopy(self.disp_cb_dict)   
     1015        self.state.disp_cb_dict = copy.deepcopy(self.disp_cb_dict) 
    10181016           
    1019         self.state.model = self.model.clone()   
    1020          ## save state into 
     1017        self.state.model = self.model.clone() 
     1018        ## save state into 
    10211019        self.state.cb1 = self.cb1.GetValue() 
    10221020        self._copy_parameters_state(self.parameters, self.state.parameters) 
    10231021        self._copy_parameters_state(self.orientation_params_disp, 
    10241022                                     self.state.orientation_params_disp) 
    1025         self._copy_parameters_state(self.fittable_param,  
     1023        self._copy_parameters_state(self.fittable_param, 
    10261024                                    self.state.fittable_param) 
    10271025        self._copy_parameters_state(self.fixed_param, self.state.fixed_param) 
    10281026 
    1029  
    1030         wx.PostEvent(self.parent, StatusEvent(status=\ 
    1031                         " Selected Distribution: Gaussian"))    
     1027        wx.PostEvent(self.parent, 
     1028                     StatusEvent(status=" Selected Distribution: Gaussian")) 
    10321029        #Fill the list of fittable parameters 
    10331030        #self.select_all_param(event=None) 
     
    10351032        self.Layout() 
    10361033 
    1037      
    10381034    def _onDraw(self, event): 
    10391035        """ 
    10401036        Update and Draw the model 
    1041         """  
    1042         if self.model ==None: 
    1043             msg="Please select a Model first..." 
     1037        """ 
     1038        if self.model == None: 
     1039            msg = "Please select a Model first..." 
    10441040            wx.MessageBox(msg, 'Info') 
    1045  
    10461041            return 
    10471042        """ 
     
    10491044            self.npts_x = self.Npts_total.GetValue() 
    10501045            self.Npts_fit.SetValue(self.npts_x) 
    1051             self.create_default_data()  
    1052         """ 
    1053         flag = self._update_paramv_on_fit()   
     1046            self.create_default_data() 
     1047        """ 
     1048        flag = self._update_paramv_on_fit() 
    10541049     
    10551050        wx.CallAfter(self._onparamEnter_helper) 
    10561051        if not flag: 
    1057             msg= "The parameters are invalid" 
    1058             wx.PostEvent(self.parent.parent, StatusEvent(status= msg )) 
    1059             return  
    1060          
    1061  
    1062     def _onFit(self, event):      
     1052            msg = "The parameters are invalid" 
     1053            wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1054            return 
     1055         
     1056    def _onFit(self, event): 
    10631057        """ 
    10641058        Allow to fit 
    10651059        """ 
    10661060        if event != None: 
    1067             event.Skip()  
     1061            event.Skip() 
    10681062        if self.fit_started: 
    10691063            self._StopFit() 
    10701064            self.fit_started = False 
    10711065            wx.CallAfter(self.set_fitbutton) 
    1072             return    
    1073  
    1074         if len(self.parent._manager.fit_thread_list)>0 and\ 
     1066            return 
     1067 
     1068        if len(self.parent._manager.fit_thread_list) > 0 and\ 
    10751069                    self.parent._manager._fit_engine != "park" and\ 
    10761070                    self._manager.sim_page != None and \ 
    1077                     self._manager.sim_page.uid == self.uid:  
     1071                    self._manager.sim_page.uid == self.uid: 
    10781072            msg = "The FitEnging will be set to 'ParkMC'\n" 
    10791073            msg += " to fit with more than one data set..." 
    10801074            wx.MessageBox(msg, 'Info') 
    1081             #wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    1082             #                "Fitting: %s"%msg)) 
    10831075             
    10841076        if self.data is None: 
    10851077            msg = "Please get Data first..." 
    10861078            wx.MessageBox(msg, 'Info') 
    1087             wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    1088                             "Fit: %s" % msg)) 
     1079            wx.PostEvent(self._manager.parent, 
     1080                         StatusEvent(status="Fit: %s" % msg)) 
    10891081            return 
    10901082        if self.model is None: 
    10911083            msg = "Please select a Model first..." 
    10921084            wx.MessageBox(msg, 'Info') 
    1093             wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    1094                             "Fit: %s"%msg, type="stop")) 
     1085            wx.PostEvent(self._manager.parent, 
     1086                         StatusEvent(status="Fit: %s" % msg, type="stop")) 
    10951087            return 
    10961088         
    10971089        if len(self.param_toFit) <= 0: 
    1098             msg= "Select at least one parameter to fit" 
     1090            msg = "Select at least one parameter to fit" 
    10991091            wx.MessageBox(msg, 'Info') 
    1100             wx.PostEvent(self._manager.parent, StatusEvent(status= msg,  
    1101                                                          type="stop" )) 
    1102             return  
    1103          
    1104         flag = self._update_paramv_on_fit()  
     1092            wx.PostEvent(self._manager.parent, 
     1093                         StatusEvent(status=msg, type="stop")) 
     1094            return 
     1095         
     1096        flag = self._update_paramv_on_fit() 
    11051097         
    11061098        if self.batch_on and not self._is_2D(): 
     
    11091101                 
    11101102        if not flag: 
    1111             msg= "Fitting range or parameters are invalid" 
    1112             wx.PostEvent(self.parent.parent, StatusEvent(status= msg,  
    1113                                                          type="stop")) 
    1114             return  
     1103            msg = "Fitting range or parameters are invalid" 
     1104            wx.PostEvent(self.parent.parent, 
     1105                         StatusEvent(status=msg, type="stop")) 
     1106            return 
    11151107               
    1116         self.select_param(event =None) 
    1117          
    1118         #Clear errors if exist from previous fitting 
    1119         #self._clear_Err_on_Fit()  
    1120  
    1121         # Remove or do not allow fitting on the Q=0 point, especially  
    1122         # when y(q=0)=None at x[0].          
     1108        self.select_param(event=None) 
     1109 
     1110        # Remove or do not allow fitting on the Q=0 point, especially 
     1111        # when y(q=0)=None at x[0]. 
    11231112        self.qmin_x = float(self.qmin.GetValue()) 
    11241113        self.qmax_x = float(self.qmax.GetValue()) 
    11251114        self._manager._reset_schedule_problem(value=0, uid=self.uid) 
    1126         self._manager.schedule_for_fit(uid=self.uid,value=1)  
    1127         self._manager.set_fit_range(uid=self.uid,qmin=self.qmin_x,  
    1128                                    qmax=self.qmax_x) 
    1129  
    1130         #single fit  
     1115        self._manager.schedule_for_fit(uid=self.uid, value=1) 
     1116        self._manager.set_fit_range(uid=self.uid, qmin=self.qmin_x, 
     1117                                    qmax=self.qmax_x) 
     1118 
     1119        #single fit 
    11311120        #self._manager.onFit(uid=self.uid) 
    11321121        self.fit_started = self._manager.onFit(uid=self.uid) 
    11331122        wx.CallAfter(self.set_fitbutton) 
    11341123     
    1135     def set_fitbutton(self):   
     1124    def set_fitbutton(self): 
    11361125        """ 
    11371126        Set fit button label depending on the fit_started[bool] 
     
    11601149            if item.GetValue(): 
    11611150                if button_list.index(item) == 0: 
    1162                     flag = 0 #dy = numpy.ones_like(dy_data) 
     1151                    flag = 0  # dy = numpy.ones_like(dy_data) 
    11631152                elif button_list.index(item) == 1: 
    1164                     flag = 1 #dy = dy_data 
     1153                    flag = 1  # dy = dy_data 
    11651154                elif button_list.index(item) == 2: 
    1166                     flag = 2 #dy = numpy.sqrt(numpy.abs(data)) 
     1155                    flag = 2  # dy = numpy.sqrt(numpy.abs(data)) 
    11671156                elif button_list.index(item) == 3: 
    1168                     flag = 3 # dy = numpy.abs(data) 
     1157                    flag = 3  # dy = numpy.abs(data) 
    11691158                break 
    11701159        return flag 
    11711160                 
    1172              
    11731161    def _StopFit(self, event=None): 
    11741162        """ 
    1175         Stop fit  
     1163        Stop fit 
    11761164        """ 
    11771165        if event != None: 
     
    11881176            self.model.name = "M" + str(self.index_model) 
    11891177     
    1190  
    1191     def _on_select_model(self, event=None):  
     1178    def _on_select_model(self, event=None): 
    11921179        """ 
    11931180        call back for model selection 
    1194         """   
    1195         self.Show(False)  
    1196         copy_flag = False  
    1197         is_poly_enabled = None  
     1181        """ 
     1182        self.Show(False) 
     1183        copy_flag = False 
     1184        is_poly_enabled = None 
    11981185        if event != None: 
    11991186            if (event.GetEventObject() == self.formfactorbox\ 
     
    12021189                        or event.GetEventObject() == self.multifactorbox: 
    12031190                copy_flag = self.get_copy_params() 
    1204                 is_poly_enabled = self.enable_disp.GetValue()  
    1205  
    1206         self._on_select_model_helper()  
    1207         self.set_model_param_sizer(self.model)                    
     1191                is_poly_enabled = self.enable_disp.GetValue() 
     1192 
     1193        self._on_select_model_helper() 
     1194        self.set_model_param_sizer(self.model) 
    12081195        if self.model is None: 
    12091196            self._set_bookmark_flag(False) 
     
    12161203        except: 
    12171204            pass 
    1218         #self.btFit.SetFocus()  
    12191205        self.state.enable_disp = self.enable_disp.GetValue() 
    12201206        self.state.disable_disp = self.disable_disp.GetValue() 
     
    12221208        self.state.slit_smearer = self.slit_smearer.GetValue() 
    12231209     
    1224         self.state.structurecombobox = self.structurebox.GetLabel()#.GetCurrentSelection() 
    1225         self.state.formfactorcombobox = self.formfactorbox.GetLabel()#.GetCurrentSelection() 
     1210        self.state.structurecombobox = self.structurebox.GetLabel() 
     1211        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
    12261212        self.enable_fit_button() 
    12271213        if self.model != None: 
     
    12321218            self._set_paste_flag(True) 
    12331219            if self.data is not None: 
    1234                 is_data = check_data_validity(self.data)  
     1220                is_data = check_data_validity(self.data) 
    12351221                if is_data: 
    12361222                    self._set_bookmark_flag(True) 
     
    12611247            (ModelEventbox, EVT_MODEL_BOX) = wx.lib.newevent.NewEvent() 
    12621248          
    1263             ## set smearing value whether or not  
     1249            ## set smearing value whether or not 
    12641250            #    the data contain the smearing info 
    1265             evt = ModelEventbox(model=self.model,  
    1266                                         smearer=temp_smear,  
    1267                              enable_smearer=not self.disable_smearer.GetValue(), 
    1268                                         qmin=float(self.qmin_x), 
    1269                                         uid=self.uid, 
    1270                                         caption=self.window_caption, 
    1271                                      qmax=float(self.qmax_x))  
     1251            evt = ModelEventbox(model=self.model, 
     1252                            smearer=temp_smear, 
     1253                            enable_smearer=not self.disable_smearer.GetValue(), 
     1254                            qmin=float(self.qmin_x), 
     1255                            uid=self.uid, 
     1256                            caption=self.window_caption, 
     1257                            qmax=float(self.qmax_x)) 
    12721258    
    12731259            self._manager._on_model_panel(evt=evt) 
     
    12771263            self.state.model.name = self.model.name 
    12781264 
    1279              
    12801265        if event != None: 
    12811266            ## post state to fit panel 
    1282             new_event = PageInfoEvent(page = self) 
    1283             wx.PostEvent(self.parent, new_event)  
     1267            new_event = PageInfoEvent(page=self) 
     1268            wx.PostEvent(self.parent, new_event) 
    12841269            #update list of plugins if new plugin is available 
    12851270            if self.plugin_rbutton.GetValue(): 
     
    13111296            self.slit_smearer.Enable(False) 
    13121297            self.pinhole_smearer.Enable(False) 
    1313             self.btEditMask.Disable()   
     1298            self.btEditMask.Disable() 
    13141299            self.EditMask_title.Disable() 
    13151300             
    1316         self.Show(True)       
     1301        self.Show(True) 
    13171302        self.SetupScrolling() 
    13181303          
    1319     def _onparamEnter(self,event): 
    1320         """  
     1304    def _onparamEnter(self, event): 
     1305        """ 
    13211306        when enter value on panel redraw model according to changed 
    13221307        """ 
    1323         if self.model ==None: 
    1324             msg="Please select a Model first..." 
     1308        if self.model == None: 
     1309            msg = "Please select a Model first..." 
    13251310            wx.MessageBox(msg, 'Info') 
    1326             #wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    1327             #                "Parameters: %s"%msg)) 
    13281311            return 
    13291312 
     
    13331316        #get event object 
    13341317        tcrtl = event.GetEventObject() 
    1335          
    1336         #wx.PostEvent(self._manager.parent, StatusEvent(status=" \ 
    1337         #                        updating ... ",type="update")) 
    13381318        #Clear msg if previously shown. 
    1339         msg= "" 
    1340         wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     1319        msg = "" 
     1320        wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    13411321 
    13421322        if check_float(tcrtl): 
    1343             flag = self._onparamEnter_helper()  
    1344             self.set_npts2fit()  
    1345             if self.fitrange:              
     1323            flag = self._onparamEnter_helper() 
     1324            self.set_npts2fit() 
     1325            if self.fitrange: 
    13461326                temp_smearer = None 
    13471327                if not self.disable_smearer.GetValue(): 
    1348                     temp_smearer= self.current_smearer 
    1349                     ## set smearing value whether or not  
     1328                    temp_smearer = self.current_smearer 
     1329                    ## set smearing value whether or not 
    13501330                    #        the data contain the smearing info 
    13511331                    if self.slit_smearer.GetValue(): 
     
    13551335                        flag1 = self.update_pinhole_smear() 
    13561336                        flag = flag or flag1 
    1357                 elif self.data.__class__.__name__ !=  "Data2D" and \ 
     1337                elif self.data.__class__.__name__ != "Data2D" and \ 
    13581338                        not self.enable2D: 
    1359                     self._manager.set_smearer(smearer=temp_smearer,  
     1339                    self._manager.set_smearer(smearer=temp_smearer, 
    13601340                                              fid=self.data.id, 
    13611341                                              uid=self.uid, 
    1362                                              qmin= float(self.qmin_x), 
    1363                                             qmax= float(self.qmax_x), 
     1342                                              qmin=float(self.qmin_x), 
     1343                                              qmax=float(self.qmax_x), 
    13641344                            enable_smearer=not self.disable_smearer.GetValue(), 
    1365                                             draw=True)  
    1366                 if flag:    
     1345                                            draw=True) 
     1346                if flag: 
    13671347                    #self.compute_chisqr(smearer= temp_smearer) 
    13681348         
     
    13701350                    if self.state_change: 
    13711351                        #self._undo.Enable(True) 
    1372                         event = PageInfoEvent(page = self) 
     1352                        event = PageInfoEvent(page=self) 
    13731353                        wx.PostEvent(self.parent, event) 
    1374                     self.state_change= False  
    1375             else:  
    1376                 # invalid fit range: do nothing here:  
    1377                 # msg already displayed in validate  
    1378                 return       
     1354                    self.state_change = False 
     1355            else: 
     1356                # invalid fit range: do nothing here: 
     1357                # msg already displayed in validate 
     1358                return 
    13791359        else: 
    13801360            self.save_current_state() 
    1381             msg= "Cannot Plot :Must enter a number!!!  " 
    1382             wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     1361            msg = "Cannot Plot :Must enter a number!!!  " 
     1362            wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    13831363              
    1384         self.save_current_state()  
    1385         return  
     1364        self.save_current_state() 
     1365        return 
    13861366    
    13871367    def _onparamRangeEnter(self, event): 
     
    13891369        Check validity of value enter in the parameters range field 
    13901370        """ 
    1391         #if self.check_invalid_panel(): 
    1392         #    return 
    1393         tcrtl= event.GetEventObject() 
     1371        tcrtl = event.GetEventObject() 
    13941372        #Clear msg if previously shown. 
    1395         msg= "" 
    1396         wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     1373        msg = "" 
     1374        wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    13971375        # Flag to register when a parameter has changed. 
    13981376        is_modified = False 
    1399         if tcrtl.GetValue().lstrip().rstrip()!="": 
     1377        if tcrtl.GetValue().lstrip().rstrip() != "": 
    14001378            try: 
    1401                 value = float(tcrtl.GetValue()) 
    14021379                tcrtl.SetBackgroundColour(wx.WHITE) 
    1403                 self._check_value_enter(self.fittable_param ,is_modified) 
    1404                 self._check_value_enter(self.parameters ,is_modified)  
     1380                self._check_value_enter(self.fittable_param, is_modified) 
     1381                self._check_value_enter(self.parameters, is_modified) 
    14051382            except: 
    14061383                tcrtl.SetBackgroundColour("pink") 
    1407                 msg= "Model Error:wrong value entered : %s"% sys.exc_value 
    1408                 wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
    1409                 return  
     1384                msg = "Model Error:wrong value entered : %s" % sys.exc_value 
     1385                wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1386                return 
    14101387        else: 
    1411            tcrtl.SetBackgroundColour(wx.WHITE) 
     1388            tcrtl.SetBackgroundColour(wx.WHITE) 
    14121389            
    14131390        #self._undo.Enable(True) 
    14141391        self.save_current_state() 
    1415         event = PageInfoEvent(page = self) 
     1392        event = PageInfoEvent(page=self) 
    14161393        wx.PostEvent(self.parent, event) 
    1417         self.state_change= False 
    1418  
    1419                      
     1394        self.state_change = False 
     1395          
    14201396    def _onQrangeEnter(self, event): 
    14211397        """ 
     
    14241400        tcrtl = event.GetEventObject() 
    14251401        #Clear msg if previously shown. 
    1426         msg= "" 
    1427         wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     1402        msg = "" 
     1403        wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    14281404        # For theory mode 
    14291405        if not self.data.is_data: 
     
    14321408            self.create_default_data() 
    14331409        # Flag to register when a parameter has changed. 
    1434         is_modified = False 
    1435         if tcrtl.GetValue().lstrip().rstrip()!="": 
     1410        if tcrtl.GetValue().lstrip().rstrip() != "": 
    14361411            try: 
    1437                 value = float(tcrtl.GetValue()) 
    14381412                tcrtl.SetBackgroundColour(wx.WHITE) 
    1439  
    14401413                # If qmin and qmax have been modified, update qmin and qmax 
    1441                 if self._validate_qrange( self.qmin, self.qmax): 
     1414                if self._validate_qrange(self.qmin, self.qmax): 
    14421415                    tempmin = float(self.qmin.GetValue()) 
    14431416                    if tempmin != self.qmin_x: 
     
    14481421                else: 
    14491422                    tcrtl.SetBackgroundColour("pink") 
    1450                     msg= "Model Error:wrong value entered : %s"% sys.exc_value 
    1451                     wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
    1452                     return  
    1453                  
     1423                    msg = "Model Error:wrong value entered : %s" % sys.exc_value 
     1424                    wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1425                    return 
    14541426            except: 
    14551427                tcrtl.SetBackgroundColour("pink") 
    1456                 msg= "Model Error:wrong value entered : %s"% sys.exc_value 
    1457                 wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
    1458                 return  
     1428                msg = "Model Error:wrong value entered : %s" % sys.exc_value 
     1429                wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
     1430                return 
    14591431            #Check if # of points for theory model are valid(>0). 
    14601432            # check for 2d 
    14611433            if self.data.__class__.__name__ == "Data2D" or \ 
    14621434                    self.enable2D: 
    1463                 # set mask    
    1464                 radius= numpy.sqrt(self.data.qx_data*self.data.qx_data +  
    1465                                     self.data.qy_data*self.data.qy_data ) 
    1466                 index_data = ((self.qmin_x <= radius)& \ 
    1467                                 (radius<= self.qmax_x)) 
    1468                 index_data = (index_data)&(self.data.mask) 
    1469                 index_data = (index_data)&(numpy.isfinite(self.data.data)) 
     1435                # set mask 
     1436                radius = numpy.sqrt(self.data.qx_data * self.data.qx_data + 
     1437                                    self.data.qy_data * self.data.qy_data) 
     1438                index_data = ((self.qmin_x <= radius) & \ 
     1439                                (radius <= self.qmax_x)) 
     1440                index_data = (index_data) & (self.data.mask) 
     1441                index_data = (index_data) & (numpy.isfinite(self.data.data)) 
    14701442                if len(index_data[index_data]) < 10: 
    14711443                    msg = "Cannot Plot :No or too little npts in" 
    14721444                    msg += " that data range!!!  " 
    1473                     wx.PostEvent(self.parent.parent,  
     1445                    wx.PostEvent(self.parent.parent, 
    14741446                                 StatusEvent(status=msg)) 
    14751447                    return 
     
    14771449                    #self.data.mask = index_data 
    14781450                    #self.Npts_fit.SetValue(str(len(self.data.mask))) 
    1479                     self.set_npts2fit()  
     1451                    self.set_npts2fit() 
    14801452            else: 
    1481                 index_data = ((self.qmin_x <= self.data.x)& \ 
     1453                index_data = ((self.qmin_x <= self.data.x) & \ 
    14821454                              (self.data.x <= self.qmax_x)) 
    14831455                self.Npts_fit.SetValue(str(len(self.data.x[index_data]))) 
     
    14871459            self._save_plotting_range() 
    14881460        else: 
    1489            tcrtl.SetBackgroundColour("pink") 
    1490            msg= "Model Error:wrong value entered!!!" 
    1491            wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     1461            tcrtl.SetBackgroundColour("pink") 
     1462            msg = "Model Error:wrong value entered!!!" 
     1463            wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    14921464         
    14931465        self._draw_model() 
    14941466        self.save_current_state() 
    1495         event = PageInfoEvent(page = self) 
     1467        event = PageInfoEvent(page=self) 
    14961468        wx.PostEvent(self.parent, event) 
    1497         self.state_change= False 
     1469        self.state_change = False 
    14981470        return 
    14991471     
    15001472    def _clear_Err_on_Fit(self): 
    15011473        """ 
    1502         hide the error text control shown  
     1474        hide the error text control shown 
    15031475        after fitting 
    15041476        """ 
    15051477        if self.is_mac: 
    15061478            return 
    1507         if hasattr(self,"text2_3"): 
     1479        if hasattr(self, "text2_3"): 
    15081480            self.text2_3.Hide() 
    15091481 
    1510         if len(self.parameters)>0: 
     1482        if len(self.parameters) > 0: 
    15111483            for item in self.parameters: 
    15121484                #Skip t ifhe angle parameters if 1D data 
    1513                 if self.data.__class__.__name__ !=  "Data2D" and \ 
     1485                if self.data.__class__.__name__ != "Data2D" and \ 
    15141486                        not self.enable2D: 
    15151487                    if item in self.orientation_params: 
     
    15171489                if item in self.param_toFit: 
    15181490                    continue 
    1519                 ## hide statictext +/-     
    1520                 if len(item) < 4 : 
     1491                ## hide statictext +/- 
     1492                if len(item) < 4: 
    15211493                    continue 
    1522                 if item[3]!=None and item[3].IsShown(): 
     1494                if item[3] != None and item[3].IsShown(): 
    15231495                    item[3].Hide() 
    15241496                ## hide textcrtl  for error after fit 
    1525                 if item[4]!=None and item[4].IsShown():                    
     1497                if item[4] != None and item[4].IsShown(): 
    15261498                    item[4].Hide() 
    15271499   
    1528         if len(self.fittable_param)>0: 
     1500        if len(self.fittable_param) > 0: 
    15291501            for item in self.fittable_param: 
    15301502                #Skip t ifhe angle parameters if 1D data 
    1531                 if self.data.__class__.__name__ !=  "Data2D" and \ 
     1503                if self.data.__class__.__name__ != "Data2D" and \ 
    15321504                        not self.enable2D: 
    15331505                    if item in self.orientation_params: 
     
    15351507                if item in self.param_toFit: 
    15361508                    continue 
    1537                 if len(item) < 4 : 
     1509                if len(item) < 4: 
    15381510                    continue 
    1539                 ## hide statictext +/-     
    1540                 if item[3]!=None and item[3].IsShown(): 
     1511                ## hide statictext +/- 
     1512                if item[3] != None and item[3].IsShown(): 
    15411513                    item[3].Hide() 
    15421514                ## hide textcrtl  for error after fit 
    1543                 if item[4]!=None and item[4].IsShown(): 
     1515                if item[4] != None and item[4].IsShown(): 
    15441516                    item[4].Hide() 
    1545         return         
     1517        return 
    15461518                 
    15471519    def _get_defult_custom_smear(self): 
     
    15501522        """ 
    15511523        # get the default values 
    1552         if self.dxl == None: self.dxl = 0.0 
    1553         if self.dxw == None: self.dxw = "" 
    1554         if self.dx_min == None: self.dx_min = SMEAR_SIZE_L 
    1555         if self.dx_max == None: self.dx_max = SMEAR_SIZE_H 
     1524        if self.dxl == None: 
     1525            self.dxl = 0.0 
     1526        if self.dxw == None: 
     1527            self.dxw = "" 
     1528        if self.dx_min == None: 
     1529            self.dx_min = SMEAR_SIZE_L 
     1530        if self.dx_max == None: 
     1531            self.dx_max = SMEAR_SIZE_H 
    15561532         
    15571533    def _get_smear_info(self): 
     
    15591535        Get the smear info from data. 
    15601536        
    1561         :return: self.smear_type, self.dq_l and self.dq_r,  
    1562             respectively the type of the smear, dq_min and  
    1563             dq_max for pinhole smear data  
     1537        :return: self.smear_type, self.dq_l and self.dq_r, 
     1538            respectively the type of the smear, dq_min and 
     1539            dq_max for pinhole smear data 
    15641540            while dxl and dxw for slit smear 
    1565              
    1566         """ 
    1567  
     1541        """ 
    15681542        # default 
    15691543        self.smear_type = None 
     
    15731547        if self.data is None: 
    15741548            return 
    1575         elif self.data.__class__.__name__ ==  "Data2D" or \ 
    1576                         self.enable2D:   
    1577             if data.dqx_data == None or  data.dqy_data ==None:  
     1549        elif self.data.__class__.__name__ == "Data2D" or \ 
     1550            self.enable2D: 
     1551            if data.dqx_data == None or  data.dqy_data == None: 
    15781552                return 
    1579             elif self.current_smearer != None and (data.dqx_data.any()!=0) and \ 
    1580                             (data.dqx_data.any()!=0):  
     1553            elif self.current_smearer != None \ 
     1554                and data.dqx_data.any() != 0 \ 
     1555                and data.dqx_data.any() != 0: 
    15811556                self.smear_type = "Pinhole2d" 
    1582                 self.dq_l = format_number(numpy.average(data.dqx_data))  
    1583                 self.dq_r = format_number(numpy.average(data.dqy_data))   
    1584                 return  
    1585             else:  
     1557                self.dq_l = format_number(numpy.average(data.dqx_data)) 
     1558                self.dq_r = format_number(numpy.average(data.dqy_data)) 
     1559                return 
     1560            else: 
    15861561                return 
    15871562        # check if it is pinhole smear and get min max if it is. 
    1588         if data.dx != None and all(data.dx !=0):  
    1589             self.smear_type = "Pinhole"  
     1563        if data.dx != None and all(data.dx != 0): 
     1564            self.smear_type = "Pinhole" 
    15901565            self.dq_l = data.dx[0] 
    15911566            self.dq_r = data.dx[-1] 
    15921567             
    15931568        # check if it is slit smear and get min max if it is. 
    1594         elif data.dxl != None or data.dxw != None:  
    1595             self.smear_type = "Slit"  
    1596             if data.dxl != None and all(data.dxl !=0): 
     1569        elif data.dxl != None or data.dxw != None: 
     1570            self.smear_type = "Slit" 
     1571            if data.dxl != None and all(data.dxl != 0): 
    15971572                self.dq_l = data.dxl[0] 
    1598             if data.dxw != None and all(data.dxw !=0):  
    1599                 self.dq_r = data.dxw[0]     
    1600         #return self.smear_type,self.dq_l,self.dq_r        
     1573            if data.dxw != None and all(data.dxw != 0): 
     1574                self.dq_r = data.dxw[0] 
     1575        #return self.smear_type,self.dq_l,self.dq_r 
    16011576     
    1602     def _show_smear_sizer(self):     
     1577    def _show_smear_sizer(self): 
    16031578        """ 
    16041579        Show only the sizers depending on smear selection 
     
    16261601                if self.smear_type == 'Slit': 
    16271602                    self.smear_description_slit_height.Show(True) 
    1628                     self.smear_description_slit_width.Show(True)                 
     1603                    self.smear_description_slit_width.Show(True) 
    16291604                elif self.smear_type == 'Pinhole': 
    16301605                    self.smear_description_pin_min.Show(True) 
     
    16801655    def _set_accuracy_list(self): 
    16811656        """ 
    1682         Set the list of an accuracy in 2D custum smear: Xhigh, High, Med, or Low 
     1657        Set the list of an accuracy in 2D custum smear: 
     1658                Xhigh, High, Med, or Low 
    16831659        """ 
    16841660        # list of accuracy choices 
    1685         list = ['Low','Med','High','Xhigh'] 
     1661        list = ['Low', 'Med', 'High', 'Xhigh'] 
    16861662        for idx in range(len(list)): 
    1687             self.smear_accuracy.Append(list[idx],idx) 
     1663            self.smear_accuracy.Append(list[idx], idx) 
    16881664             
    1689     def _set_fun_box_list(self,fun_box): 
     1665    def _set_fun_box_list(self, fun_box): 
    16901666        """ 
    16911667        Set the list of func for multifunctional models 
     
    17041680            for key, val in list.iteritems(): 
    17051681                if (val == ind): 
    1706                     fun_box.Append(key,val) 
     1682                    fun_box.Append(key, val) 
    17071683                    break 
    17081684            ind += 1 
    17091685         
    1710     def _on_select_accuracy(self,event): 
     1686    def _on_select_accuracy(self, event): 
    17111687        """ 
    17121688        Select an accuracy in 2D custom smear: Xhigh, High, Med, or Low 
     
    17181694        if self.pinhole_smearer.GetValue(): 
    17191695            self.onPinholeSmear(event=None) 
    1720         else:     
     1696        else: 
    17211697            self.onSmear(event=None) 
    17221698            if self.current_smearer != None: 
    1723                 self.current_smearer.set_accuracy(accuracy =  
    1724                                                   self.smear2d_accuracy)  
     1699                self.current_smearer.set_accuracy(accuracy=self.smear2d_accuracy)  
    17251700        event.Skip() 
    17261701 
    1727     def _on_fun_box(self,event): 
     1702    def _on_fun_box(self, event): 
    17281703        """ 
    17291704        Select an func: Erf,Rparabola,LParabola 
     
    17331708        name = fun_box.Name 
    17341709        value = fun_box.GetValue() 
    1735         if self.model.fun_list.has_key(value): 
     1710        if value in self.model.fun_list: 
    17361711            fun_val = self.model.fun_list[value] 
    17371712 
    1738         self.model.setParam(name,fun_val) 
     1713        self.model.setParam(name, fun_val) 
    17391714        # save state 
    1740         self._copy_parameters_state(self.str_parameters,  
     1715        self._copy_parameters_state(self.str_parameters, 
    17411716                                    self.state.str_parameters) 
    17421717        # update params 
    1743         self._update_paramv_on_fit()  
     1718        self._update_paramv_on_fit() 
    17441719        # draw 
    17451720        self._draw_model() 
     
    17481723        event.Skip() 
    17491724         
    1750     def _onMask(self, event):      
     1725    def _onMask(self, event): 
    17511726        """ 
    17521727        Build a panel to allow to edit Mask 
    17531728        """ 
    1754          
    17551729        from sans.guiframe.local_perspectives.plotting.masking \ 
    17561730        import MaskPanel as MaskDialog 
    17571731         
    17581732        self.panel = MaskDialog(base=self, data=self.data, id=wx.NewId()) 
    1759         #self.panel.Bind(wx.EVT_CLOSE, self._draw_masked_model) 
    17601733        self.panel.ShowModal() 
    1761         #wx.PostEvent(self.parent, event) 
    17621734         
    17631735    def _draw_masked_model(self, event): 
     
    17651737        Draw model image w/mask 
    17661738        """ 
    1767         #event.Skip() 
    17681739        is_valid_qrange = self._update_paramv_on_fit() 
    17691740 
    17701741        if is_valid_qrange and self.model != None: 
    1771             #self.panel.Show(0) 
    1772             #self.panel.Destroy() # frame 
    17731742            self.panel.MakeModal(False) 
    1774             event.Skip()  
     1743            event.Skip() 
    17751744            # try re draw the model plot if it exists 
    17761745            self._draw_model() 
    17771746            self.set_npts2fit() 
    17781747        elif self.model == None: 
    1779             #self.panel.Show(0) 
    1780             #self.panel.Destroy() # frame 
    17811748            self.panel.MakeModal(False) 
    17821749            event.Skip() 
    17831750            self.set_npts2fit() 
    1784             msg= "No model is found on updating MASK in the model plot... " 
    1785             wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     1751            msg = "No model is found on updating MASK in the model plot... " 
     1752            wx.PostEvent(self.parent.parent, StatusEvent(status=msg)) 
    17861753        else: 
    17871754            event.Skip() 
     
    17891756            self.panel.ShowMessage(msg) 
    17901757 
    1791          
    17921758    def _set_smear(self, data): 
    17931759        """ 
     
    17961762            return 
    17971763        self.current_smearer = smear_selection(data, self.model) 
    1798         flag =  self.disable_smearer.GetValue() 
     1764        flag = self.disable_smearer.GetValue() 
    17991765        self.disable_smearer.SetValue(flag) 
    18001766        if self.current_smearer == None: 
     
    18391805        qmin, qmax, npts = None, None, None 
    18401806        if data is not None: 
    1841             if not hasattr(data,"data"): 
     1807            if not hasattr(data, "data"): 
    18421808                qmin = min(data.x) 
    1843                 # Maximum value of data   
     1809                # Maximum value of data 
    18441810                qmax = max(data.x) 
    18451811                npts = len(data.x) 
    18461812            else: 
    18471813                qmin = 0 
    1848                 x = max(math.fabs(data.xmin), math.fabs(data.xmax))  
     1814                x = max(math.fabs(data.xmin), math.fabs(data.xmax)) 
    18491815                y = max(math.fabs(data.ymin), math.fabs(data.ymax)) 
    1850                 ## Maximum value of data   
    1851                 qmax = math.sqrt(x*x + y*y) 
     1816                ## Maximum value of data 
     1817                qmax = math.sqrt(x * x + y * y) 
    18521818                npts = len(data.data) 
    18531819        return qmin, qmax, npts 
    18541820             
    1855      
    18561821    def set_data(self, data): 
    18571822        """ 
    1858         reset the current data  
    1859         """ 
    1860         from sans.guiframe.dataFitting import check_data_validity 
     1823        reset the current data 
     1824        """ 
    18611825        id = None 
    18621826        flag = False 
    18631827        is_data = False 
    18641828        if self.data is not None: 
    1865             is_data = check_data_validity(self.data)   
     1829            is_data = check_data_validity(self.data) 
    18661830        if not is_data and data is not None: 
    18671831                flag = True 
     
    18911855            self._set_smear(data) 
    18921856            # more disables for 2D 
    1893             if self.data.__class__.__name__ ==  "Data2D" or \ 
     1857            if self.data.__class__.__name__ == "Data2D" or \ 
    18941858                        self.enable2D: 
    18951859                self.slit_smearer.Disable() 
    1896                 self.pinhole_smearer.Enable(True)  
     1860                self.pinhole_smearer.Enable(True) 
    18971861                self.default_mask = copy.deepcopy(self.data.mask) 
    18981862                if self.data.err_data == None or\ 
     
    19071871                    self.weightbt_string = self.dI_didata.GetLabelText() 
    19081872            else: 
    1909                 self.slit_smearer.Enable(True)  
    1910                 self.pinhole_smearer.Enable(True)  
     1873                self.slit_smearer.Enable(True) 
     1874                self.pinhole_smearer.Enable(True) 
    19111875                if self.data.dy == None or\ 
    19121876                     (self.data.dy == 1).all() or\ 
     
    19191883                    self.dI_didata.SetValue(True) 
    19201884                    self.weightbt_string = self.dI_didata.GetLabelText() 
    1921             # Enable weighting radio uttons      
    1922             self.dI_noweight.Enable(True)    
     1885            # Enable weighting radio uttons 
     1886            self.dI_noweight.Enable(True) 
    19231887            self.dI_sqrdata.Enable(True) 
    19241888            self.dI_idata.Enable(True) 
     
    19271891            self.structurebox.Enable() 
    19281892            data_name = self.data.name 
    1929             _, _, npts =  self.compute_data_range(self.data) 
     1893            _, _, npts = self.compute_data_range(self.data) 
    19301894            #set maximum range for x in linear scale 
    1931             if not hasattr(self.data, "data"): #Display only for 1D data fit 
    1932                 self.btEditMask.Disable()   
     1895            if not hasattr(self.data, "data"):  # Display only for 1D data fit 
     1896                self.btEditMask.Disable() 
    19331897                self.EditMask_title.Disable() 
    19341898            else: 
    1935                 self.btEditMask.Enable()   
    1936                 self.EditMask_title.Enable()  
     1899                self.btEditMask.Enable() 
     1900                self.EditMask_title.Enable() 
    19371901     
    19381902        self.Npts_total.SetValue(str(npts)) 
     
    19471911        self.state.data = data 
    19481912        self.enable_fit_button() 
    1949         # send graph_id to page_finder  
     1913        # send graph_id to page_finder 
    19501914        self._manager.set_graph_id(uid=self.uid, graph_id=self.graph_id) 
    19511915        #focus the page 
     
    19561920            self.slit_smearer.Enable(False) 
    19571921            self.pinhole_smearer.Enable(False) 
    1958             self.btEditMask.Disable()   
     1922            self.btEditMask.Disable() 
    19591923            self.EditMask_title.Disable() 
    19601924 
    1961          
    19621925        self.on_set_focus(None) 
    19631926        self.Refresh() 
     
    19681931                    self.disable_smearer.SetValue(True) 
    19691932            self.onSmear(None) 
    1970             #self._set_smear(self.data) 
    19711933 
    19721934            if self.data.__class__.__name__ == "Data2D": 
     
    19791941            #replace data plot on combo box selection 
    19801942            #by removing the previous selected data 
    1981             wx.PostEvent(self._manager.parent, NewPlotEvent(action="remove", 
    1982                                                     group_id=self.graph_id, id=id)) 
     1943            wx.PostEvent(self._manager.parent, 
     1944                         NewPlotEvent(action="remove", 
     1945                                      group_id=self.graph_id, id=id)) 
    19831946            #plot the current selected data 
    1984             wx.PostEvent(self._manager.parent, NewPlotEvent(plot=self.data,  
    1985                                                 title=str(self.data.title))) 
    1986             #self._manager.store_data(uid=self.uid, data_list=self.data_list, 
    1987             #                          caption=self.window_name) 
     1947            wx.PostEvent(self._manager.parent, 
     1948                         NewPlotEvent(plot=self.data, 
     1949                                      title=str(self.data.title))) 
    19881950            self._draw_model() 
    19891951     
     
    19921954        Prevent further handling of the mouse event on Npts_total 
    19931955        by not calling Skip(). 
    1994         """  
     1956        """ 
    19951957        pass 
    19961958     
    1997     def reset_page(self, state,first=False): 
     1959    def reset_page(self, state, first=False): 
    19981960        """ 
    19991961        reset the state 
     
    20011963        self.reset_page_helper(state) 
    20021964 
    2003         self.select_param(event = None)  
     1965        self.select_param(event=None) 
    20041966        #Save state_fit 
    20051967        self.save_current_state_fit() 
     
    20111973        return the fitting range 
    20121974        """ 
    2013         return float(self.qmin_x) , float(self.qmax_x) 
     1975        return float(self.qmin_x), float(self.qmax_x) 
    20141976     
    20151977    def get_npts2fit(self): 
     
    20231985            return 
    20241986        npts2fit = 0 
    2025         qmin,qmax = self.get_range() 
     1987        qmin, qmax = self.get_range() 
    20261988        if self.data.__class__.__name__ == "Data2D" or \ 
    20271989                        self.enable2D: 
    2028             radius= numpy.sqrt( self.data.qx_data*self.data.qx_data +  
    2029                                 self.data.qy_data*self.data.qy_data ) 
    2030             index_data = (self.qmin_x <= radius)&(radius<= self.qmax_x) 
    2031             index_data= (index_data)&(self.data.mask) 
    2032             index_data = (index_data)&(numpy.isfinite(self.data.data)) 
     1990            radius = numpy.sqrt(self.data.qx_data * self.data.qx_data + 
     1991                                self.data.qy_data * self.data.qy_data) 
     1992            index_data = (self.qmin_x <= radius) & (radius <= self.qmax_x) 
     1993            index_data = (index_data) & (self.data.mask) 
     1994            index_data = (index_data) & (numpy.isfinite(self.data.data)) 
    20331995            npts2fit = len(self.data.data[index_data]) 
    20341996        else: 
    20351997            for qx in self.data.x: 
    2036                    if qx >= qmin and qx <= qmax: 
    2037                        npts2fit += 1 
     1998                if qx >= qmin and qx <= qmax: 
     1999                    npts2fit += 1 
    20382000        return npts2fit 
    20392001 
    20402002    def set_npts2fit(self): 
    20412003        """ 
    2042         setValue Npts for fitting  
     2004        setValue Npts for fitting 
    20432005        """ 
    20442006        self.Npts_fit.SetValue(str(self.get_npts2fit())) 
     
    20552017            checked.Theses TextCtrl will allow reference to parameters to fit. 
    20562018         
    2057         :raise: if return an empty list of parameter fit will nnote work  
     2019        :raise: if return an empty list of parameter fit will nnote work 
    20582020            properly so raise ValueError,"missing parameter to fit" 
    20592021        """ 
    2060         if self.param_toFit !=[]: 
     2022        if self.param_toFit != []: 
    20612023            return self.param_toFit 
    20622024        else: 
    2063             msg = "missing parameters to fit"   
     2025            msg = "missing parameters to fit" 
    20642026            wx.MessageBox(msg, 'warning') 
    20652027            return False 
    2066             #raise ValueError,"missing parameters to fit"     
    20672028       
    20682029    def onsetValues(self, chisqr, p_name, out, cov): 
     
    20792040        self._on_fit_complete() 
    20802041        if out == None or not numpy.isfinite(chisqr): 
    2081             raise ValueError,"Fit error occured..."  
     2042            raise ValueError,"Fit error occured..." 
    20822043         
    20832044        is_modified = False 
    2084         has_error = False  
    2085         dispersity = ''    
     2045        has_error = False 
     2046        dispersity = '' 
    20862047         
    20872048        #Hide textctrl boxes of errors. 
    2088         self._clear_Err_on_Fit()     
     2049        self._clear_Err_on_Fit() 
    20892050         
    20902051        #Check if chi2 is finite 
    20912052        if chisqr != None and numpy.isfinite(chisqr): 
    2092         #format chi2   
    2093             if self.engine_type == "park":   
    2094                 npt_fit = float(self.get_npts2fit())  
    2095                 # Taking care this in parkemgine 
    2096                 #if npt_fit > 0: 
    2097                 #    chisqr =chisqr/npt_fit     
    2098             chi2 = format_number(chisqr, True)     
    2099             self.tcChi.SetValue(chi2)     
    2100             self.tcChi.Refresh()     
     2053            #format chi2 
     2054            if self.engine_type == "park": 
     2055                npt_fit = float(self.get_npts2fit()) 
     2056            chi2 = format_number(chisqr, True) 
     2057            self.tcChi.SetValue(chi2) 
     2058            self.tcChi.Refresh() 
    21012059        else: 
    21022060            self.tcChi.SetValue("-") 
     
    21082066        try: 
    21092067            if self.enable_disp.GetValue(): 
    2110                 if hasattr(self,"text_disp_1" ): 
     2068                if hasattr(self, "text_disp_1"): 
    21112069                    if self.text_disp_1 != None and not self.is_mac: 
    21122070                        self.text_disp_1.Hide() 
     
    21152073            pass 
    21162074       
    2117              
    21182075        i = 0 
    21192076        #Set the panel when fit result are list 
    2120         for item in self.param_toFit:      
    2121             if len(item)>5 and item != None:      
     2077        for item in self.param_toFit: 
     2078            if len(item) > 5 and item != None: 
    21222079                ## reset error value to initial state 
    21232080                if not self.is_mac: 
     
    21262083                for ind in range(len(out)): 
    21272084                    if item[1] == p_name[ind]: 
    2128                         break        
    2129                 if len(out)<=len(self.param_toFit) and out[ind] !=None:    
    2130                     val_out = format_number(out[ind], True)                   
     2085                        break 
     2086                if len(out) <= len(self.param_toFit) and out[ind] != None: 
     2087                    val_out = format_number(out[ind], True) 
    21312088                    item[2].SetValue(val_out) 
    21322089 
    2133                 if(cov !=None and len(cov) == len(out)): 
     2090                if(cov != None and len(cov) == len(out)): 
    21342091                    try: 
    2135                         if dispersity !=None: 
     2092                        if dispersity != None: 
    21362093                            if self.enable_disp.GetValue(): 
    2137                                 if hasattr(self,"text_disp_1" ): 
    2138                                     if self.text_disp_1!=None: 
     2094                                if hasattr(self, "text_disp_1"): 
     2095                                    if self.text_disp_1 != None: 
    21392096                                        if not self.text_disp_1.IsShown()\ 
    21402097                                            and not self.is_mac: 
    21412098                                            self.text_disp_1.Show(True) 
    21422099                    except: 
    2143                         pass     
     2100                        pass 
    21442101                     
    2145                     if cov[ind]!=None : 
     2102                    if cov[ind] != None: 
    21462103                        if numpy.isfinite(float(cov[ind])): 
    21472104                            val_err = format_number(cov[ind], True) 
     
    21512108                            item[4].SetValue(val_err) 
    21522109                            has_error = True 
    2153                 i += 1          
     2110                i += 1 
    21542111        #Show error title when any errors displayed 
    2155         if has_error:  
     2112        if has_error: 
    21562113            if not self.text2_3.IsShown(): 
    2157                 self.text2_3.Show(True)    
    2158         ## save current state   
    2159         self.save_current_state()           
    2160          
    2161         #self._lay_out()  
     2114                self.text2_3.Show(True) 
     2115        ## save current state 
     2116        self.save_current_state() 
     2117         
    21622118        if not self.is_mac: 
    2163             self.Layout()  
    2164             self.Refresh()  
    2165         self._mac_sleep(0.1)   
     2119            self.Layout() 
     2120            self.Refresh() 
     2121        self._mac_sleep(0.1) 
    21662122        #plot model ( when drawing, do not update chisqr value again) 
    2167         self._draw_model(update_chisqr=False, source = 'fit')     
    2168         #PostStatusEvent      
    2169         #msg = "Fit completed!dddd " 
    2170         #wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
     2123        self._draw_model(update_chisqr=False, source='fit') 
    21712124     
    21722125    def onWeighting(self, event): 
     
    21862139        if is_2D == None: 
    21872140            is_2D = self._is_2D() 
    2188         weight = get_weight(data=self.data,  
    2189                             is2d=is_2D,  
     2141        weight = get_weight(data=self.data, 
     2142                            is2d=is_2D, 
    21902143                            flag=flag_weight) 
    2191         self._manager.set_fit_weight(uid=self.uid,  
    2192                                      flag=flag_weight,  
    2193                                      is2d=is_2D,  
     2144        self._manager.set_fit_weight(uid=self.uid, 
     2145                                     flag=flag_weight, 
     2146                                     is2d=is_2D, 
    21942147                                     fid=None) 
    21952148     
     
    22072160            if event == None: 
    22082161                return 
    2209             msg="Please select a Model first..." 
     2162            msg = "Please select a Model first..." 
    22102163            wx.MessageBox(msg, 'Info') 
    2211             wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    2212                             "Smear: %s"%msg)) 
     2164            wx.PostEvent(self._manager.parent, 
     2165                         StatusEvent(status="Smear: %s" % msg)) 
    22132166            return 
    22142167 
    22152168        # Need update param values 
    2216         self._update_paramv_on_fit()      
     2169        self._update_paramv_on_fit() 
    22172170 
    22182171        # msg default 
    22192172        msg = None 
    22202173        if event != None: 
    2221             tcrtl= event.GetEventObject() 
     2174            tcrtl = event.GetEventObject() 
    22222175            # event case of radio button 
    2223             if tcrtl.GetValue()== True: 
     2176            if tcrtl.GetValue() == True: 
    22242177                self.dx_min = 0.0 
    22252178                self.dx_max = 0.0 
     
    22282181                is_new_pinhole = self._is_changed_pinhole() 
    22292182        else: 
    2230             is_new_pinhole = True  
     2183            is_new_pinhole = True 
    22312184        # if any value is changed 
    22322185        if is_new_pinhole: 
    22332186            msg = self._set_pinhole_smear() 
    2234         # hide all silt sizer     
     2187        # hide all silt sizer 
    22352188        self._hide_all_smear_info() 
    22362189         
    2237         ##Calculate chi2 
    2238         temp_smearer = self.current_smearer 
    2239         #self.compute_chisqr(smearer= temp_smearer) 
    2240              
    2241         # show relevant slit sizers  
     2190        # show relevant slit sizers 
    22422191        self._show_smear_sizer() 
    22432192 
    22442193        self.sizer_set_smearer.Layout() 
    2245         self.Layout()    
    2246          
    2247         if event != None:  
    2248             event.Skip()                   
     2194        self.Layout() 
     2195         
     2196        if event != None: 
     2197            event.Skip() 
    22492198        #self._undo.Enable(True) 
    22502199        self.save_current_state() 
    2251         event = PageInfoEvent(page = self) 
     2200        event = PageInfoEvent(page=self) 
    22522201        wx.PostEvent(self.parent, event) 
    22532202         
    2254     def _is_changed_pinhole(self):   
     2203    def _is_changed_pinhole(self): 
    22552204        """ 
    22562205        check if any of pinhole smear is changed 
     
    22632212        pin_max = self.smear_pinhole_max.GetValue() 
    22642213                     
    2265         # Check changes in slit width     
     2214        # Check changes in slit width 
    22662215        try: 
    22672216            dx_min = float(pin_min) 
     
    23032252    
    23042253        get_pin_min = self.smear_pinhole_min 
    2305         get_pin_max = self.smear_pinhole_max         
     2254        get_pin_max = self.smear_pinhole_max 
    23062255 
    23072256        if not check_float(get_pin_min): 
    23082257            get_pin_min.SetBackgroundColour("pink") 
    2309             msg= "Model Error:wrong value entered!!!" 
    2310         elif not check_float(get_pin_max ): 
     2258            msg = "Model Error:wrong value entered!!!" 
     2259        elif not check_float(get_pin_max): 
    23112260            get_pin_max.SetBackgroundColour("pink") 
    2312             msg= "Model Error:wrong value entered!!!" 
     2261            msg = "Model Error:wrong value entered!!!" 
    23132262        else: 
    2314             if len_data < 2: len_data = 2      
     2263            if len_data < 2: 
     2264                len_data = 2 
    23152265            self.dx_min = float(get_pin_min.GetValue()) 
    23162266            self.dx_max = float(get_pin_max.GetValue()) 
    23172267            if self.dx_min < 0: 
    23182268                get_pin_min.SetBackgroundColour("pink") 
    2319                 msg= "Model Error:This value can not be negative!!!" 
    2320             elif self.dx_max <0: 
     2269                msg = "Model Error:This value can not be negative!!!" 
     2270            elif self.dx_max < 0: 
    23212271                get_pin_max.SetBackgroundColour("pink") 
    2322                 msg= "Model Error:This value can not be negative!!!" 
    2323             elif self.dx_min != None and self.dx_max != None:    
     2272                msg = "Model Error:This value can not be negative!!!" 
     2273            elif self.dx_min != None and self.dx_max != None: 
    23242274                if self._is_2D(): 
    2325                     data.dqx_data[data.dqx_data==0] = self.dx_min 
    2326                     data.dqy_data[data.dqy_data==0] = self.dx_max           
     2275                    data.dqx_data[data.dqx_data == 0] = self.dx_min 
     2276                    data.dqy_data[data.dqy_data == 0] = self.dx_max 
    23272277                elif self.dx_min == self.dx_max: 
    2328                     data.dx[data.dx==0] = self.dx_min 
     2278                    data.dx[data.dx == 0] = self.dx_min 
    23292279                else: 
    2330                     step = (self.dx_max - self.dx_min)/(len_data-1)     
    2331                     data.dx = numpy.arange(self.dx_min,self.dx_max+step/1.1, 
    2332                                            step)             
    2333             elif self.dx_min != None:  
    2334                 if self._is_2D(): data.dqx_data[data.dqx_data==0] = self.dx_min 
    2335                 else: data.dx[data.dx==0] = self.dx_min  
     2280                    step = (self.dx_max - self.dx_min) / (len_data - 1) 
     2281                    data.dx = numpy.arange(self.dx_min, 
     2282                                           self.dx_max + step / 1.1, 
     2283                                           step) 
     2284            elif self.dx_min != None: 
     2285                if self._is_2D(): 
     2286                    data.dqx_data[data.dqx_data == 0] = self.dx_min 
     2287                else: 
     2288                    data.dx[data.dx == 0] = self.dx_min 
    23362289            elif self.dx_max != None: 
    2337                 if self._is_2D(): data.dqy_data[data.dqy_data==0] = self.dx_max 
    2338                 else: data.dx[data.dx==0] = self.dx_max           
     2290                if self._is_2D(): 
     2291                    data.dqy_data[data.dqy_data == 0] = self.dx_max 
     2292                else: 
     2293                    data.dx[data.dx == 0] = self.dx_max 
    23392294            self.current_smearer = smear_selection(data, self.model) 
    23402295            # 2D need to set accuracy 
    2341             if self._is_2D():  
    2342                 self.current_smearer.set_accuracy(accuracy = \ 
    2343                                                   self.smear2d_accuracy) 
     2296            if self._is_2D(): 
     2297                self.current_smearer.set_accuracy(accuracy=self.smear2d_accuracy) 
    23442298 
    23452299        if msg != None: 
    2346             wx.PostEvent(self._manager.parent, StatusEvent(status = msg )) 
     2300            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    23472301        else: 
    23482302            get_pin_min.SetBackgroundColour("white") 
     
    23532307                                fid=self.data.id, 
    23542308                                 qmin=float(self.qmin_x), 
    2355                                  qmax= float(self.qmax_x), 
     2309                                 qmax=float(self.qmax_x), 
    23562310                                 enable_smearer=not self.disable_smearer.GetValue(), 
    23572311                                 uid=self.uid) 
     
    23612315        """ 
    23622316        called by kill_focus on pinhole TextCntrl 
    2363         to update the changes  
     2317        to update the changes 
    23642318         
    23652319        :return: False when wrong value was entered 
     
    23702324        # check if any value is changed 
    23712325        if self._is_changed_pinhole(): 
    2372             msg = self._set_pinhole_smear()            
    2373         #self._undo.Enable(True) 
     2326            msg = self._set_pinhole_smear() 
    23742327        wx.CallAfter(self.save_current_state) 
    23752328 
    23762329        if msg != None: 
    2377             return False    
     2330            return False 
    23782331        else: 
    23792332            return True 
     
    23882341            if event == None: 
    23892342                return 
    2390             msg="Please select a Model first..." 
     2343            msg = "Please select a Model first..." 
    23912344            wx.MessageBox(msg, 'Info') 
    2392             wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    2393                             "Smear: %s"%msg)) 
     2345            wx.PostEvent(self._manager.parent, 
     2346                         StatusEvent(status="Smear: %s" % msg)) 
    23942347            return 
    23952348 
     
    24012354        # for event given 
    24022355        if event != None: 
    2403             tcrtl= event.GetEventObject() 
     2356            tcrtl = event.GetEventObject() 
    24042357            # event case of radio button 
    24052358            if tcrtl.GetValue(): 
     
    24102363                is_new_slit = self._is_changed_slit() 
    24112364        else: 
    2412             is_new_slit = True  
     2365            is_new_slit = True 
    24132366         
    24142367        # if any value is changed 
     
    24172370             
    24182371        # hide all silt sizer 
    2419         self._hide_all_smear_info()         
    2420         ##Calculate chi2 
    2421         #self.compute_chisqr(smearer= self.current_smearer)   
    2422         # show relevant slit sizers        
     2372        self._hide_all_smear_info() 
     2373        # show relevant slit sizers 
    24232374        self._show_smear_sizer() 
    24242375        self.sizer_set_smearer.Layout() 
     
    24262377 
    24272378        if event != None: 
    2428             event.Skip()      
    2429         #self._undo.Enable(True) 
     2379            event.Skip() 
    24302380        self.save_current_state() 
    2431         event = PageInfoEvent(page = self) 
     2381        event = PageInfoEvent(page=self) 
    24322382        wx.PostEvent(self.parent, event) 
    24332383        if msg != None: 
    2434             wx.PostEvent(self._manager.parent, StatusEvent(status = msg)) 
    2435  
    2436     def _is_changed_slit(self):   
     2384            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
     2385 
     2386    def _is_changed_slit(self): 
    24372387        """ 
    24382388        check if any of slit lengths is changed 
     
    24452395        height = self.smear_slit_height.GetValue() 
    24462396         
    2447         # check and change the box bg color if it was pink  
     2397        # check and change the box bg color if it was pink 
    24482398        #    but it should be white now 
    24492399        # because this is the case that _set_slit_smear() will not handle 
    2450         if height.lstrip().rstrip()=="": 
     2400        if height.lstrip().rstrip() == "": 
    24512401            self.smear_slit_height.SetBackgroundColour(wx.WHITE) 
    2452         if width.lstrip().rstrip()=="": 
     2402        if width.lstrip().rstrip() == "": 
    24532403            self.smear_slit_width.SetBackgroundColour(wx.WHITE) 
    24542404             
    2455         # Check changes in slit width     
    2456         if width == "":  
     2405        # Check changes in slit width 
     2406        if width == "": 
    24572407            dxw = 0.0 
    24582408        else: 
     
    24652415         
    24662416        # Check changes in slit heigth 
    2467         if height == "":  
     2417        if height == "": 
    24682418            dxl = 0.0 
    24692419        else: 
     
    24842434            of the values entered for slit smear 
    24852435        """ 
    2486         if self.data.__class__.__name__ ==  "Data2D" or \ 
     2436        if self.data.__class__.__name__ == "Data2D" or \ 
    24872437                        self.enable2D: 
    24882438            return 
    2489         temp_smearer = None 
    24902439        # make sure once more if it is smearer 
    24912440        data = copy.deepcopy(self.data) 
     
    24982447        try: 
    24992448            self.dxl = float(self.smear_slit_height.GetValue()) 
    2500             data.dxl = self.dxl* numpy.ones(data_len) 
     2449            data.dxl = self.dxl * numpy.ones(data_len) 
    25012450            self.smear_slit_height.SetBackgroundColour(wx.WHITE) 
    2502         except:  
     2451        except: 
    25032452            data.dxl = numpy.zeros(data_len) 
    2504             if self.smear_slit_height.GetValue().lstrip().rstrip()!="": 
     2453            if self.smear_slit_height.GetValue().lstrip().rstrip() != "": 
    25052454                self.smear_slit_height.SetBackgroundColour("pink") 
    2506                 msg = "Wrong value entered... "   
     2455                msg = "Wrong value entered... " 
    25072456            else: 
    25082457                self.smear_slit_height.SetBackgroundColour(wx.WHITE) 
     
    25102459            self.dxw = float(self.smear_slit_width.GetValue()) 
    25112460            self.smear_slit_width.SetBackgroundColour(wx.WHITE) 
    2512             data.dxw = self.dxw* numpy.ones(data_len) 
    2513         except:  
     2461            data.dxw = self.dxw * numpy.ones(data_len) 
     2462        except: 
    25142463            data.dxw = numpy.zeros(data_len) 
    2515             if self.smear_slit_width.GetValue().lstrip().rstrip()!="": 
     2464            if self.smear_slit_width.GetValue().lstrip().rstrip() != "": 
    25162465                self.smear_slit_width.SetBackgroundColour("pink") 
    25172466                msg = "Wrong Fit value entered... " 
     
    25202469               
    25212470        self.current_smearer = smear_selection(data, self.model) 
    2522         #temp_smearer = self.current_smearer 
    25232471        ## set smearing value whether or not the data contain the smearing info 
    2524         self._manager.set_smearer(smearer=self.current_smearer,  
     2472        self._manager.set_smearer(smearer=self.current_smearer, 
    25252473                                 fid=self.data.id, 
    2526                                  qmin=float(self.qmin_x),  
    2527                                  qmax= float(self.qmax_x), 
     2474                                 qmin=float(self.qmin_x), 
     2475                                 qmax=float(self.qmax_x), 
    25282476                        enable_smearer=not self.disable_smearer.GetValue(), 
    2529                                  uid=self.uid)  
     2477                                 uid=self.uid) 
    25302478        return msg 
    25312479     
     
    25332481        """ 
    25342482        called by kill_focus on pinhole TextCntrl 
    2535         to update the changes  
     2483        to update the changes 
    25362484         
    25372485        :return: False when wrong value was entered 
    25382486         
    2539         """              
     2487        """ 
    25402488        # msg default 
    25412489        msg = None 
    25422490        # check if any value is changed 
    25432491        if self._is_changed_slit(): 
    2544             msg = self._set_slit_smear()            
     2492            msg = self._set_slit_smear() 
    25452493        #self._undo.Enable(True) 
    25462494        self.save_current_state() 
    25472495 
    25482496        if msg != None: 
    2549             return False    
     2497            return False 
    25502498        else: 
    25512499            return True 
     
    25562504        are compute when fitting 
    25572505        """ 
    2558         if event != None:  
    2559             event.Skip()     
     2506        if event != None: 
     2507            event.Skip() 
    25602508        if self.data is None: 
    25612509            return 
     
    25652513            if event == None: 
    25662514                return 
    2567             msg="Please select a Model first..." 
     2515            msg = "Please select a Model first..." 
    25682516            wx.MessageBox(msg, 'Info') 
    2569             wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    2570                             "Smear: %s"%msg)) 
     2517            wx.PostEvent(self._manager.parent, 
     2518                         StatusEvent(status="Smear: %s" % msg)) 
    25712519            return 
    25722520        # Need update param values 
    25732521        self._update_paramv_on_fit() 
    2574         temp_smearer = self.on_smear_helper()             
     2522        temp_smearer = self.on_smear_helper() 
    25752523         
    25762524        self.sizer_set_smearer.Layout() 
     
    25792527         
    25802528        ## set smearing value whether or not the data contain the smearing info 
    2581         wx.CallAfter(self._manager.set_smearer, uid=self.uid, smearer=temp_smearer, 
    2582                                   fid=self.data.id, 
    2583                         qmin=float(self.qmin_x), 
    2584                         qmax=float(self.qmax_x), 
    2585                         enable_smearer=not self.disable_smearer.GetValue(), 
    2586                          draw=True)  
    2587          
    2588         self.state.enable_smearer=  self.enable_smearer.GetValue() 
    2589         self.state.disable_smearer=self.disable_smearer.GetValue() 
     2529        wx.CallAfter(self._manager.set_smearer, uid=self.uid, 
     2530                     smearer=temp_smearer, 
     2531                     fid=self.data.id, 
     2532                     qmin=float(self.qmin_x), 
     2533                     qmax=float(self.qmax_x), 
     2534                     enable_smearer=not self.disable_smearer.GetValue(), 
     2535                     draw=True) 
     2536         
     2537        self.state.enable_smearer = self.enable_smearer.GetValue() 
     2538        self.state.disable_smearer = self.disable_smearer.GetValue() 
    25902539        self.state.pinhole_smearer = self.pinhole_smearer.GetValue() 
    25912540        self.state.slit_smearer = self.slit_smearer.GetValue() 
     
    25982547        """ 
    25992548        self._get_smear_info() 
    2600         temp_smearer = None 
    26012549        #renew smear sizer 
    26022550        if self.smear_type != None: 
    26032551            self.smear_description_smear_type.SetValue(str(self.smear_type)) 
    2604             self.smear_data_left.SetValue(str(self.dq_l))    
    2605             self.smear_data_right.SetValue(str(self.dq_r))  
     2552            self.smear_data_left.SetValue(str(self.dq_l)) 
     2553            self.smear_data_right.SetValue(str(self.dq_r)) 
    26062554 
    26072555        self._hide_all_smear_info() 
     
    26132561            self.current_smearer = temp_smearer 
    26142562        if self.enable_smearer.GetValue(): 
    2615             if hasattr(self.data,"dxl"): 
    2616                 msg= ": Resolution smearing parameters" 
    2617             if hasattr(self.data,"dxw"): 
    2618                 msg= ": Slit smearing parameters" 
    2619             if self.current_smearer ==None: 
    2620                 wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    2621                             "Data contains no smearing information")) 
     2563            if self.current_smearer == None: 
     2564                wx.PostEvent(self._manager.parent, 
     2565                             StatusEvent(status="Data contains no smearing information")) 
    26222566            else: 
    2623                 wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    2624                             "Data contains smearing information")) 
    2625  
    2626             #self.smear_description_dqdata.Show(True) 
     2567                wx.PostEvent(self._manager.parent, 
     2568                             StatusEvent(status="Data contains smearing information")) 
     2569 
    26272570            self.smear_data_left.Show(True) 
    26282571            self.smear_data_right.Show(True) 
    2629             temp_smearer= self.current_smearer 
     2572            temp_smearer = self.current_smearer 
    26302573        elif self.disable_smearer.GetValue(): 
    26312574            self.smear_description_none.Show(True) 
     
    26382581        return temp_smearer 
    26392582     
    2640     def on_complete_chisqr(self, event):   
     2583    def on_complete_chisqr(self, event): 
    26412584        """ 
    26422585        Display result chisqr on the panel 
     
    26452588        try: 
    26462589            if event == None: 
    2647                 output= "-" 
     2590                output = "-" 
    26482591            elif not numpy.isfinite(event.output): 
    2649                 output= "-" 
     2592                output = "-" 
    26502593            else: 
    26512594                output = event.output 
     
    26532596            self.state.tcChi = self.tcChi.GetValue() 
    26542597        except: 
    2655             pass   
     2598            pass 
    26562599             
    2657      
    26582600    def get_all_checked_params(self): 
    26592601        """ 
    2660         Found all parameters current check and add them to list of parameters to  
     2602        Found all parameters current check and add them to list of parameters to 
    26612603        fit 
    26622604        """ 
     
    26682610            if item[0].GetValue() and item not in self.param_toFit: 
    26692611                self.param_toFit.append(item) 
    2670         self.save_current_state_fit()   
     2612        self.save_current_state_fit() 
    26712613        
    26722614       
    2673         event = PageInfoEvent(page = self) 
    2674         wx.PostEvent(self.parent, event)  
     2615        event = PageInfoEvent(page=self) 
     2616        wx.PostEvent(self.parent, event) 
    26752617        param2fit = [] 
    26762618        for item in self.param_toFit: 
    26772619            if item[0]: 
    2678                 param2fit.append(item[1])      
     2620                param2fit.append(item[1]) 
    26792621        self.parent._manager.set_param2fit(self.uid, param2fit) 
    26802622                 
    2681     def select_all_param(self, event):  
     2623    def select_all_param(self, event): 
    26822624        """ 
    26832625        set to true or false all checkBox given the main checkbox value cb1 
    2684         """             
     2626        """ 
    26852627        self.param_toFit = [] 
    26862628        if  self.parameters !=[]: 
     
    26882630                for item in self.parameters: 
    26892631                    ## for data2D select all to fit 
    2690                     if self.data.__class__.__name__==  "Data2D" or \ 
     2632                    if self.data.__class__.__name__ ==  "Data2D" or \ 
    26912633                            self.enable2D: 
    26922634                        item[0].SetValue(True) 
     
    26962638                        if not item in self.orientation_params: 
    26972639                            item[0].SetValue(True) 
    2698                             self.param_toFit.append(item ) 
     2640                            self.param_toFit.append(item) 
    26992641                #if len(self.fittable_param)>0: 
    27002642                for item in self.fittable_param: 
    2701                     if self.data.__class__.__name__== "Data2D" or \ 
     2643                    if self.data.__class__.__name__ == "Data2D" or \ 
    27022644                            self.enable2D: 
    27032645                        item[0].SetValue(True) 
     
    27132655                        if not item in self.orientation_params_disp: 
    27142656                            item[0].SetValue(True) 
    2715                             self.param_toFit.append(item ) 
     2657                            self.param_toFit.append(item) 
    27162658                            try: 
    27172659                                if len(self.values[item[1]]) > 0: 
     
    27252667                for item in self.fittable_param: 
    27262668                    item[0].SetValue(False) 
    2727                 self.param_toFit=[] 
     2669                self.param_toFit = [] 
    27282670            
    2729         self.save_current_state_fit()   
     2671        self.save_current_state_fit() 
    27302672        
    2731         if event !=None: 
     2673        if event != None: 
    27322674            #self._undo.Enable(True) 
    27332675            ## post state to fit panel 
    2734             event = PageInfoEvent(page = self) 
    2735             wx.PostEvent(self.parent, event)  
     2676            event = PageInfoEvent(page=self) 
     2677            wx.PostEvent(self.parent, event) 
    27362678        param2fit = [] 
    27372679        for item in self.param_toFit: 
    27382680            if item[0]: 
    2739                 param2fit.append(item[1])      
     2681                param2fit.append(item[1]) 
    27402682        self.parent._manager.set_param2fit(self.uid, param2fit) 
    27412683 
    2742          
    27432684    def select_param(self,event): 
    27442685        """  
     
    27562697            if item[0].GetValue(): 
    27572698                if not (item in self.param_toFit): 
    2758                     self.param_toFit.append(item )   
     2699                    self.param_toFit.append(item) 
    27592700            else: 
    27602701                #remove parameters from the fitting list 
     
    27622703                    self.param_toFit.remove(item) 
    27632704 
    2764         #Select parameters to fit for list of fittable parameters  
    2765         #        with dispersion           
     2705        #Select parameters to fit for list of fittable parameters 
     2706        #        with dispersion 
    27662707        for item in self.fittable_param: 
    27672708            #Skip t ifhe angle parameters if 1D data 
    2768             if self.data.__class__.__name__ !=  "Data2D" and\ 
     2709            if self.data.__class__.__name__ != "Data2D" and\ 
    27692710                        not self.enable2D: 
    27702711                if item in self.orientation_params: 
     
    27722713            if item[0].GetValue(): 
    27732714                if not (item in self.param_toFit): 
    2774                     self.param_toFit.append(item)   
     2715                    self.param_toFit.append(item) 
    27752716            else: 
    27762717                #remove parameters from the fitting list 
     
    27782719                    self.param_toFit.remove(item) 
    27792720 
    2780         #Calculate num. of angle parameters  
    2781         if self.data.__class__.__name__ ==  "Data2D" or \ 
     2721        #Calculate num. of angle parameters 
     2722        if self.data.__class__.__name__ == "Data2D" or \ 
    27822723                       self.enable2D: 
    27832724            len_orient_para = 0 
    27842725        else: 
    2785             len_orient_para = len(self.orientation_params)  #assume even len  
     2726            len_orient_para = len(self.orientation_params)  # assume even len 
    27862727        #Total num. of angle parameters 
    27872728        if len(self.fittable_param) > 0: 
    27882729            len_orient_para *= 2 
    2789         #Set the value of checkbox that selected every checkbox or not         
    2790         if len(self.parameters)+len(self.fittable_param)-len_orient_para ==\ 
     2730        #Set the value of checkbox that selected every checkbox or not 
     2731        if len(self.parameters) + len(self.fittable_param) - len_orient_para ==\ 
    27912732                len(self.param_toFit): 
    27922733            self.cb1.SetValue(True) 
     
    27942735            self.cb1.SetValue(False) 
    27952736        
    2796         
    2797         
    27982737        self.save_current_state_fit() 
    2799         if event !=None: 
    2800             #self._undo.Enable(True) 
     2738        if event != None: 
    28012739            ## post state to fit panel 
    2802             event = PageInfoEvent(page = self) 
    2803             wx.PostEvent(self.parent, event)  
     2740            event = PageInfoEvent(page=self) 
     2741            wx.PostEvent(self.parent, event) 
    28042742         
    28052743        param2fit = [] 
    28062744        for item in self.param_toFit: 
    28072745            if item[0]: 
    2808                 param2fit.append(item[1])      
     2746                param2fit.append(item[1]) 
    28092747        self.parent._manager.set_param2fit(self.uid, param2fit) 
    28102748         
     
    28192757        self.parameters = [] 
    28202758        self.str_parameters = [] 
    2821         self.param_toFit=[] 
    2822         self.fittable_param=[] 
    2823         self.fixed_param=[] 
    2824         self.orientation_params=[] 
    2825         self.orientation_params_disp=[] 
    2826          
    2827         if model ==None: 
     2759        self.param_toFit = [] 
     2760        self.fittable_param = [] 
     2761        self.fixed_param = [] 
     2762        self.orientation_params = [] 
     2763        self.orientation_params_disp = [] 
     2764         
     2765        if model == None: 
    28282766            self.sizer3.Layout() 
    28292767            self.SetupScrolling() 
    28302768            return 
    28312769        ## the panel is drawn using the current value of the fit engine 
    2832         if self.engine_type==None and self._manager !=None: 
     2770        if self.engine_type==None and self._manager != None: 
    28332771            self.engine_type= self._manager._return_engine_type() 
    28342772 
Note: See TracChangeset for help on using the changeset viewer.