Ignore:
Timestamp:
Dec 7, 2016 9:16:33 AM (7 years ago)
Author:
jhbakker
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, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
c6728e1
Parents:
1cad8a4 (diff), 5231948 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into Jurtest

File:
1 edited

Legend:

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

    r55db501 rf668101  
    1919 
    2020from sas.sasgui.guiframe.panel_base import PanelBase 
    21 from sas.sasgui.guiframe.utils import format_number, check_float, IdList, check_int 
     21from sas.sasgui.guiframe.utils import format_number, check_float, IdList, \ 
     22    check_int 
    2223from sas.sasgui.guiframe.events import PanelOnFocusEvent 
    2324from sas.sasgui.guiframe.events import StatusEvent 
     
    4243_QMAX_DEFAULT = 0.5 
    4344_NPTS_DEFAULT = 50 
    44 #Control panel width 
     45# Control panel width 
    4546if sys.platform.count("win32") > 0: 
    4647    PANEL_WIDTH = 450 
     
    5758    This class provide general structure of  fitpanel page 
    5859    """ 
    59     ## Internal name for the AUI manager 
     60    # Internal name for the AUI manager 
    6061    window_name = "Fit Page" 
    61     ## Title to appear on top of the window 
     62    # Title to appear on top of the window 
    6263    window_caption = "Fit Page " 
    6364 
     
    7576        PanelBase.__init__(self, parent) 
    7677        self.SetupScrolling() 
    77         #Set window's font size 
     78        # Set window's font size 
    7879        self.SetWindowVariant(variant=FONT_VARIANT) 
    7980        self.SetBackgroundColour(color) 
    8081 
    8182        self._ids = iter(self._id_pool) 
    82         ## parent of the page 
     83        # parent of the page 
    8384        self.parent = parent 
    84         ## manager is the fitting plugin 
    85         ## owner of the page (fitting plugin) 
     85        # manager is the fitting plugin 
     86        # owner of the page (fitting plugin) 
    8687        self.event_owner = None 
    87         ## current model 
     88        # current model 
    8889        self.model = None 
    8990        self.m_name = None 
    9091        self.index_model = None 
    9192        self.panel = None 
    92         ## data 
     93        # data 
    9394        self.data = None 
    94         #list of available data 
     95        # list of available data 
    9596        self.data_list = [] 
    9697        self.mask = None 
    9798        self.uid = wx.NewId() 
    9899        self.graph_id = None 
    99         #Q range for data set 
     100        # Q range for data set 
    100101        self.qmin_data_set = numpy.inf 
    101102        self.qmax_data_set = None 
    102103        self.npts_data_set = 0 
    103         ## Q range 
     104        # Q range 
    104105        self.qmin = None 
    105106        self.qmax = None 
     
    107108        self.qmin_x = _QMIN_DEFAULT 
    108109        self.npts_x = _NPTS_DEFAULT 
    109         ## total number of point: float 
     110        # total number of point: float 
    110111        self.npts = None 
    111112        self.num_points = None 
    112         ## smear default 
     113        # smear default 
    113114        self.current_smearer = None 
    114         ## 2D smear accuracy default 
     115        # 2D smear accuracy default 
    115116        self.smear2d_accuracy = 'Low' 
    116         ## slit smear: 
     117        # slit smear: 
    117118        self.dxl = None 
    118119        self.dxw = None 
    119         ## pinhole smear 
     120        # pinhole smear 
    120121        self.dx_min = None 
    121122        self.dx_max = None 
    122         ##semar attrbs 
     123        # smear attrbs 
    123124        self.enable_smearer = None 
    124125        self.disable_smearer = None 
    125126        self.pinhole_smearer = None 
    126127        self.slit_smearer = None 
    127         ##weigth attrbs 
     128        # weight attrbs 
    128129        self.dI_noweight = None 
    129130        self.dI_didata = None 
    130131        self.dI_sqrdata = None 
    131132        self.dI_idata = None 
    132         ##other attrbs 
     133        # other attrbs 
    133134        self.dq_l = None 
    134135        self.dq_r = None 
     
    150151        self.disp_cb_dict = {} 
    151152 
    152         #self.state = PageState(parent=parent) 
    153         ## dictionary containing list of models 
     153        # self.state = PageState(parent=parent) 
     154        # dictionary containing list of models 
    154155        self.model_list_box = {} 
    155156 
    156         ## Data member to store the dispersion object created 
     157        # Data member to store the dispersion object created 
    157158        self._disp_obj_dict = {} 
    158         ## selected parameters to apply dispersion 
     159        # selected parameters to apply dispersion 
    159160        self.disp_cb_dict = {} 
    160         ## smearer object 
     161        # smearer object 
    161162        self.enable2D = False 
    162163        self._has_magnetic = False 
     
    166167        self.structurebox = None 
    167168        self.categorybox = None 
    168         ##list of model parameters. each item must have same length 
    169         ## each item related to a given parameters 
    170         ##[cb state, name, value, "+/-", error of fit, min, max , units] 
     169        # list of model parameters. each item must have same length 
     170        # each item related to a given parameters 
     171        # [cb state, name, value, "+/-", error of fit, min, max , units] 
    171172        self.parameters = [] 
    172173        # non-fittable parameter whose value is astring 
    173174        self.str_parameters = [] 
    174         ## list of parameters to fit , must be like self.parameters 
     175        # list of parameters to fit , must be like self.parameters 
    175176        self.param_toFit = [] 
    176         ## list of looking like parameters but with non fittable parameters info 
     177        # list of looking like parameters but with non fittable parameters info 
    177178        self.fixed_param = [] 
    178         ## list of looking like parameters but with  fittable parameters info 
     179        # list of looking like parameters but with  fittable parameters info 
    179180        self.fittable_param = [] 
    180         ##list of dispersion parameters 
     181        # list of dispersion parameters 
    181182        self.disp_list = [] 
    182183        self.disp_name = "" 
    183184 
    184         ## list of orientation parameters 
     185        # list of orientation parameters 
    185186        self.orientation_params = [] 
    186187        self.orientation_params_disp = [] 
     
    189190#       and this - commenting out on 4/8/2014 by PDB.  Remove once clear 
    190191#       it is pointless. 
    191 #        if self.model != None: 
     192#        if self.model is not None: 
    192193#            self.disp_list = self.model.getDispParamList() 
    193194        self.temp_multi_functional = False 
    194         ##enable model 2D draw 
     195        # enable model 2D draw 
    195196        self.enable2D = False 
    196         ## check that the fit range is correct to plot the model again 
     197        # check that the fit range is correct to plot the model again 
    197198        self.fitrange = True 
    198         ## Create memento to save the current state 
     199        # Create memento to save the current state 
    199200        self.state = PageState(parent=self.parent, 
    200201                               model=self.model, data=self.data) 
    201         ## flag to determine if state has change 
     202        # flag to determine if state has change 
    202203        self.state_change = False 
    203         ## save customized array 
     204        # save customized array 
    204205        self.values = {}   # type: Dict[str, List[float, ...]] 
    205206        self.weights = {}   # type: Dict[str, List[float, ...]] 
    206         ## retrieve saved state 
     207        # retrieve saved state 
    207208        self.number_saved_state = 0 
    208         ## dictionary of saved state 
     209        # dictionary of saved state 
    209210        self.saved_states = {} 
    210         ## Create context menu for page 
     211        # Create context menu for page 
    211212        self.popUpMenu = wx.Menu() 
    212213 
     
    221222        self.popUpMenu.AppendSeparator() 
    222223 
    223         ## Default locations 
     224        # Default locations 
    224225        self._default_save_location = os.getcwd() 
    225         ## save initial state on context menu 
    226         #self.onSave(event=None) 
     226        # save initial state on context menu 
     227        # self.onSave(event=None) 
    227228        self.Bind(wx.EVT_CONTEXT_MENU, self.onContextMenu) 
    228229 
     
    230231        self.Bind(wx.EVT_LEFT_DOWN, self.on_left_down) 
    231232 
    232         ## create the basic structure of the panel with empty sizer 
     233        # create the basic structure of the panel with empty sizer 
    233234        self.define_page_structure() 
    234         ## drawing Initial dispersion parameters sizer 
     235        # drawing Initial dispersion parameters sizer 
    235236        self.set_dispers_sizer() 
    236237 
    237         ## layout 
     238        # layout 
    238239        self.set_layout() 
    239240 
     
    261262                    self._create_default_1d_data() 
    262263 
    263             if self.model != None: 
     264            if self.model is not None: 
    264265                if not self.data.is_data: 
    265                     self._manager.page_finder[self.uid].set_fit_data(data=\ 
    266                                                                 [self.data]) 
     266                    self._manager.page_finder[self.uid].set_fit_data( 
     267                        data=[self.data]) 
    267268            self.on_smear_helper(update=True) 
    268269            self.state.enable_smearer = self.enable_smearer.GetValue() 
     
    330331        self.data.id = str(self.uid) + " data" 
    331332        self.data.group_id = str(self.uid) + " Model2D" 
    332         ## Default values 
     333        # Default values 
    333334        self.data.detector.append(Detector()) 
    334335        index = len(self.data.detector) - 1 
     
    347348        x = numpy.linspace(start=xmin, stop=xmax, num=qstep, endpoint=True) 
    348349        y = numpy.linspace(start=ymin, stop=ymax, num=qstep, endpoint=True) 
    349         ## use data info instead 
     350        # use data info instead 
    350351        new_x = numpy.tile(x, (len(y), 1)) 
    351352        new_y = numpy.tile(y, (len(x), 1)) 
     
    388389        Update menu1 on cliking the page tap 
    389390        """ 
    390         if self._manager.menu1 != None: 
    391             chain_menu = self._manager.menu1.FindItemById(\ 
     391        if self._manager.menu1 is not None: 
     392            chain_menu = self._manager.menu1.FindItemById( 
    392393                                                   self._manager.id_reset_flag) 
    393394            chain_menu.Enable(self.batch_on) 
    394395            sim_menu = self._manager.menu1.FindItemById(self._manager.id_simfit) 
    395396            flag = self.data.is_data\ 
    396                             and (self.model != None) 
     397                            and (self.model is not None) 
    397398            sim_menu.Enable(not self.batch_on and flag) 
    398399            batch_menu = \ 
     
    535536        fill sizer containing dispersity info 
    536537        """ 
    537         #print "==== entering set_dispers_sizer ===" 
     538        # print "==== entering set_dispers_sizer ===" 
    538539        self.sizer4.Clear(True) 
    539540        name = "Polydispersity and Orientational Distribution" 
     
    541542        box_description.SetForegroundColour(wx.BLUE) 
    542543        boxsizer1 = wx.StaticBoxSizer(box_description, wx.VERTICAL) 
    543         #---------------------------------------------------- 
     544        # ---------------------------------------------------- 
    544545        self.disable_disp = wx.RadioButton(self, wx.ID_ANY, 'Off', (10, 10), 
    545546                                           style=wx.RB_GROUP) 
     
    561562        self.Bind(wx.EVT_RADIOBUTTON, self._set_dipers_Param, 
    562563                  id=self.enable_disp.GetId()) 
    563         #MAC needs SetValue 
     564        # MAC needs SetValue 
    564565        self.disable_disp.SetValue(True) 
    565566        sizer_dispersion = wx.BoxSizer(wx.HORIZONTAL) 
     
    573574        sizer_dispersion.Add(self.disp_help_bt) 
    574575 
    575         ## fill a sizer for dispersion 
     576        # fill a sizer for dispersion 
    576577        boxsizer1.Add(sizer_dispersion, 0, 
    577578                      wx.TOP|wx.BOTTOM|wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 
     
    580581 
    581582        boxsizer1.Add(self.sizer4_4) 
    582         #----------------------------------------------------- 
     583        # ----------------------------------------------------- 
    583584        self.sizer4.Add(boxsizer1, 0, wx.EXPAND | wx.ALL, 10) 
    584585        self.sizer4_4.Layout() 
     
    587588 
    588589        self.Refresh() 
    589         ## saving the state of enable dispersity button 
     590        # saving the state of enable dispersity button 
    590591        self.state.enable_disp = self.enable_disp.GetValue() 
    591592        self.state.disable_disp = self.disable_disp.GetValue() 
     
    597598        """ 
    598599        menu = event.GetEventObject() 
    599         ## post help message for the selected model 
     600        # post help message for the selected model 
    600601        msg = menu.GetHelpString(event.GetId()) 
    601602        msg += " reloaded" 
     
    604605        name = menu.GetLabel(event.GetId()) 
    605606        self._on_select_model_helper() 
    606         if self.model != None: 
     607        if self.model is not None: 
    607608            self.m_name = self.model.name 
    608609        if name in self.saved_states.keys(): 
    609610            previous_state = self.saved_states[name] 
    610             ## reset state of checkbox,textcrtl  and  regular parameters value 
     611            # reset state of checkbox,textcrtl  and  regular parameters value 
    611612 
    612613            self.reset_page(previous_state) 
     
    631632        # Ask the user the location of the file to write to. 
    632633        path = None 
    633         if self.parent != None: 
     634        if self.parent is not None: 
    634635            self._default_save_location = \ 
    635636                        self._manager.parent._default_save_location 
     
    641642            self._default_save_location = os.path.dirname(path) 
    642643            self._manager.parent._default_save_location = \ 
    643                                 self._default_save_location 
     644                self._default_save_location 
    644645        else: 
    645646            return None 
     
    648649        # Make sure the ext included in the file name 
    649650        fName = os.path.splitext(path)[0] + extens 
    650         #the manager write the state into file 
     651        # the manager write the state into file 
    651652        self._manager.save_fit_state(filepath=fName, fitstate=new_state) 
    652653        return new_state 
     
    656657        Copy Parameter values to the clipboad 
    657658        """ 
    658         if event != None: 
     659        if event is not None: 
    659660            event.Skip() 
    660661        # It seems MAC needs wxCallAfter 
     
    672673        Paste Parameter values to the panel if possible 
    673674        """ 
    674         #if event != None: 
     675        # if event is not None: 
    675676        #    event.Skip() 
    676677        # It seems MAC needs wxCallAfter for the setvalues 
     
    678679        wx.CallAfter(self.get_paste) 
    679680        # messages depending on the flag 
    680         #self._copy_info(True) 
     681        # self._copy_info(True) 
    681682 
    682683    def _copy_info(self, flag): 
     
    687688        """ 
    688689        # messages depending on the flag 
    689         if flag == None: 
     690        if flag is None: 
    690691            msg = " Parameter values are copied to the clipboard..." 
    691692            infor = 'warning' 
     
    715716        save history of the data and model 
    716717        """ 
    717         if self.model == None: 
     718        if self.model is None: 
    718719            msg = "Can not bookmark; Please select Data and Model first..." 
    719720            wx.MessageBox(msg, 'Info') 
     
    721722        self.save_current_state() 
    722723        new_state = self.state.clone() 
    723         ##Add model state on context menu 
     724        # Add model state on context menu 
    724725        self.number_saved_state += 1 
    725726        current_time, current_date = self._get_time_stamp() 
    726         #name= self.model.name+"[%g]"%self.number_saved_state 
     727        # name= self.model.name+"[%g]"%self.number_saved_state 
    727728        name = "Fitting: %g]" % self.number_saved_state 
    728729        name += self.model.__class__.__name__ 
     
    730731        self.saved_states[name] = new_state 
    731732 
    732         ## Add item in the context menu 
     733        # Add item in the context menu 
    733734        msg = "Model saved at %s on %s" % (current_time, current_date) 
    734         ## post help message for the selected model 
     735        # post help message for the selected model 
    735736        msg += " Saved! right click on this page to retrieve this model" 
    736737        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
     
    766767        """ 
    767768        try: 
    768             if path == None: 
     769            if path is None: 
    769770                status = " Selected Distribution was not loaded: %s" % path 
    770771                wx.PostEvent(self._manager.parent, 
     
    801802        Store current state 
    802803        """ 
    803         ## save model option 
    804         if self.model != None: 
     804        # save model option 
     805        if self.model is not None: 
    805806            self.disp_list = self.model.getDispParamList() 
    806807            self.state.disp_list = copy.deepcopy(self.disp_list) 
    807808            self.state.model = self.model.clone() 
    808809 
    809             #model combobox: complex code because of mac's silent error 
    810             if self.structurebox != None: 
     810            # model combobox: complex code because of mac's silent error 
     811            if self.structurebox is not None: 
    811812                if self.structurebox.IsShown(): 
    812813                    self.state.structurecombobox = 'None' 
    813814                    s_select = self.structurebox.GetSelection() 
    814815                    if s_select > 0: 
    815                         self.state.structurecombobox = self.structurebox.\ 
    816                         GetString(s_select) 
    817             if self.formfactorbox != None: 
     816                        self.state.structurecombobox = \ 
     817                            self.structurebox.GetString(s_select) 
     818            if self.formfactorbox is not None: 
    818819                f_select = self.formfactorbox.GetSelection() 
    819820                if f_select > 0: 
    820                     self.state.formfactorcombobox = self.formfactorbox.\ 
    821                     GetString(f_select) 
    822         if self.categorybox != None: 
     821                    self.state.formfactorcombobox = \ 
     822                        self.formfactorbox.GetString(f_select) 
     823        if self.categorybox is not None: 
    823824            cb_select = self.categorybox.GetSelection() 
    824825            if cb_select > 0: 
    825                 self.state.categorycombobox = self.categorybox.\ 
    826                 GetString(cb_select) 
     826                self.state.categorycombobox = \ 
     827                    self.categorybox.GetString(cb_select) 
    827828 
    828829        self.state.enable2D = copy.deepcopy(self.enable2D) 
    829830        self.state.values = copy.deepcopy(self.values) 
    830831        self.state.weights = copy.deepcopy(self.weights) 
    831         ## save data 
     832        # save data 
    832833        self.state.data = copy.deepcopy(self.data) 
    833834        self.state.qmax_x = self.qmax_x 
     
    864865            self.state.values = copy.deepcopy(self.values) 
    865866            self.state.weights = copy.deepcopy(self.weights) 
    866         ## save plotting range 
     867        # save plotting range 
    867868        self._save_plotting_range() 
    868869 
     
    874875        self.state.str_parameters = [] 
    875876 
    876         ## save checkbutton state and txtcrtl values 
     877        # save checkbutton state and txtcrtl values 
    877878        self._copy_parameters_state(self.str_parameters, 
    878879                                    self.state.str_parameters) 
     
    886887                                    self.state.fittable_param) 
    887888        self._copy_parameters_state(self.fixed_param, self.state.fixed_param) 
    888         #save chisqr 
     889        # save chisqr 
    889890        self.state.tcChi = self.tcChi.GetValue() 
    890891 
     
    893894        Store current state for fit_page 
    894895        """ 
    895         ## save model option 
    896         if self.model != None: 
     896        # save model option 
     897        if self.model is not None: 
    897898            self.disp_list = self.model.getDispParamList() 
    898899            self.state.disp_list = copy.deepcopy(self.disp_list) 
     
    902903        self.state.values = copy.deepcopy(self.values) 
    903904        self.state.weights = copy.deepcopy(self.weights) 
    904         ## save data 
     905        # save data 
    905906        self.state.data = copy.deepcopy(self.data) 
    906907 
     
    923924        self.state.dI_sqrdata = copy.deepcopy(self.dI_sqrdata.GetValue()) 
    924925        self.state.dI_idata = copy.deepcopy(self.dI_idata.GetValue()) 
    925         if hasattr(self, "disp_box") and self.disp_box != None: 
     926        if hasattr(self, "disp_box") and self.disp_box is not None: 
    926927            self.state.disp_box = self.disp_box.GetCurrentSelection() 
    927928 
    928929            if len(self.disp_cb_dict) > 0: 
    929930                for k, v in self.disp_cb_dict.iteritems(): 
    930                     if v == None: 
     931                    if v is None: 
    931932                        self.state.disp_cb_dict[k] = v 
    932933                    else: 
     
    942943            self.state.weights = copy.deepcopy(self.weights) 
    943944 
    944         ## save plotting range 
     945        # save plotting range 
    945946        self._save_plotting_range() 
    946947 
    947         ## save checkbutton state and txtcrtl values 
     948        # save checkbutton state and txtcrtl values 
    948949        self._copy_parameters_state(self.orientation_params, 
    949950                                    self.state.orientation_params) 
     
    964965            msg = "Please load Data and select Model to start..." 
    965966            wx.MessageBox(msg, 'Info') 
    966             return  True 
     967            return True 
    967968 
    968969    def set_model_state(self, state): 
     
    973974        self.disp_list = state.disp_list 
    974975 
    975         ## fill model combobox 
     976        # fill model combobox 
    976977        self._show_combox_helper() 
    977         #select the current model 
     978        # select the current model 
    978979        try: 
    979980            # to support older version 
     
    10141015        self.structurebox.SetSelection(structfactor_pos) 
    10151016 
    1016         if state.multi_factor != None: 
     1017        if state.multi_factor is not None: 
    10171018            self.multifactorbox.SetSelection(state.multi_factor) 
    10181019 
    1019         ## reset state of checkbox,textcrtl  and  regular parameters value 
     1020        # reset state of checkbox,textcrtl  and  regular parameters value 
    10201021        self._reset_parameters_state(self.orientation_params_disp, 
    10211022                                     state.orientation_params_disp) 
     
    10251026                                     state.str_parameters) 
    10261027        self._reset_parameters_state(self.parameters, state.parameters) 
    1027         ## display dispersion info layer 
     1028        # display dispersion info layer 
    10281029        self.enable_disp.SetValue(state.enable_disp) 
    10291030        self.disable_disp.SetValue(state.disable_disp) 
    10301031 
    1031         if hasattr(self, "disp_box") and self.disp_box != None: 
     1032        if hasattr(self, "disp_box") and self.disp_box is not None: 
    10321033            self.disp_box.SetSelection(state.disp_box) 
    10331034            n = self.disp_box.GetCurrentSelection() 
     
    10411042 
    10421043                    if hasattr(self.disp_cb_dict[item], "SetValue"): 
    1043                         self.disp_cb_dict[item].SetValue(\ 
     1044                        self.disp_cb_dict[item].SetValue( 
    10441045                                                    state.disp_cb_dict[item]) 
    10451046                        # Create the dispersion objects 
    10461047                        disp_model = POLYDISPERSITY_MODELS['array']() 
    10471048                        if hasattr(state, "values") and \ 
    1048                                  self.disp_cb_dict[item].GetValue() == True: 
     1049                                 self.disp_cb_dict[item].GetValue() is True: 
    10491050                            if len(state.values) > 0: 
    10501051                                self.values = state.values 
     
    10571058                        self._disp_obj_dict[item] = disp_model 
    10581059                        # Set the new model as the dispersion object 
    1059                         #for the selected parameter 
     1060                        # for the selected parameter 
    10601061                        self.model.set_dispersion(item, disp_model) 
    10611062 
     
    10671068                for item in keys: 
    10681069                    if item in self.disp_list and \ 
    1069                         not item in self.model.details: 
     1070                            item not in self.model.details: 
    10701071                        self.model.details[item] = ["", None, None] 
    10711072                self.disp_cb_dict = copy.deepcopy(state.disp_cb_dict) 
    10721073                self.state.disp_cb_dict = copy.deepcopy(state.disp_cb_dict) 
    1073         ## smearing info  restore 
     1074        # smearing info  restore 
    10741075        if hasattr(self, "enable_smearer"): 
    1075             ## set smearing value whether or not the data 
    1076             #contain the smearing info 
     1076            # set smearing value whether or not the data 
     1077            # contain the smearing info 
    10771078            self.enable_smearer.SetValue(state.enable_smearer) 
    10781079            self.disable_smearer.SetValue(state.disable_smearer) 
     
    10861087        self.dI_idata.SetValue(state.dI_idata) 
    10871088 
    1088         ## we have two more options for smearing 
     1089        # we have two more options for smearing 
    10891090        if self.pinhole_smearer.GetValue(): 
    10901091            self.onPinholeSmear(event=None) 
     
    10921093            self.onSlitSmear(event=None) 
    10931094 
    1094         ## reset state of checkbox,textcrtl  and dispersity parameters value 
     1095        # reset state of checkbox,textcrtl  and dispersity parameters value 
    10951096        self._reset_parameters_state(self.fittable_param, state.fittable_param) 
    10961097        self._reset_parameters_state(self.fixed_param, state.fixed_param) 
    10971098 
    1098         ## draw the model with previous parameters value 
     1099        # draw the model with previous parameters value 
    10991100        self._onparamEnter_helper() 
    11001101        self.select_param(event=None) 
    1101         #Save state_fit 
     1102        # Save state_fit 
    11021103        self.save_current_state_fit() 
    11031104        self._lay_out() 
     
    11131114                if state.formfactorcombobox in list_item: 
    11141115                    return self.categorybox.Items.index(key) 
     1116        return 0 
    11151117 
    11161118    def reset_page_helper(self, state): 
     
    11231125            state of the graphic interface 
    11241126        """ 
    1125         if state == None: 
     1127        if state is None: 
    11261128            return 
    11271129        # set data, etc. from the state 
     
    11321134        data = state.data 
    11331135 
    1134         if data == None: 
     1136        if data is None: 
    11351137            data_min = state.qmin 
    11361138            data_max = state.qmax 
     
    11561158        self.disp_list = state.disp_list 
    11571159 
    1158         ## set the state of the radio box 
    1159         #self.shape_rbutton.SetValue(state.shape_rbutton) 
    1160         #self.shape_indep_rbutton.SetValue(state.shape_indep_rbutton) 
    1161         #self.struct_rbutton.SetValue(state.struct_rbutton) 
    1162         #self.plugin_rbutton.SetValue(state.plugin_rbutton) 
    1163  
    1164         ## fill model combobox 
     1160        # fill model combobox 
    11651161        self._show_combox_helper() 
    1166         #select the current model 
     1162        # select the current model 
    11671163        try: 
    11681164            # to support older version 
    11691165            category_pos = int(state.categorycombobox) 
    11701166        except: 
    1171             state.formfactorcombobox = unicode(state.formfactorcombobox.lower()) 
     1167            state.formfactorcombobox = state.formfactorcombobox.lower() 
     1168            state.formfactorcombobox = \ 
     1169                state.formfactorcombobox.replace('model', '') 
     1170            state.formfactorcombobox = unicode(state.formfactorcombobox) 
    11721171            state.categorycombobox = unicode(state.categorycombobox) 
    1173             category_pos = 0 
    11741172            if state.categorycombobox in self.categorybox.Items: 
    11751173                category_pos = self.categorybox.Items.index( 
     
    11941192        self.formfactorbox.Select(formfactor_pos) 
    11951193 
     1194        structfactor_pos = 0 
    11961195        try: 
    11971196            # to support older version 
     
    11991198        except: 
    12001199            if state.structurecombobox is not None: 
    1201                 structfactor_pos = 0 
    12021200                state.structurecombobox = unicode(state.structurecombobox) 
    12031201                for ind_struct in range(self.structurebox.GetCount()): 
    12041202                    if self.structurebox.GetString(ind_struct) == \ 
    1205                                                         (state.structurecombobox): 
     1203                                                    (state.structurecombobox): 
    12061204                        structfactor_pos = int(ind_struct) 
    12071205                        break 
     
    12091207        self.structurebox.SetSelection(structfactor_pos) 
    12101208 
    1211         if state.multi_factor != None: 
     1209        if state.multi_factor is not None: 
    12121210            self.multifactorbox.SetSelection(state.multi_factor) 
    12131211 
    1214         #draw the panel according to the new model parameter 
     1212        # draw the panel according to the new model parameter 
    12151213        self._on_select_model(event=None) 
    12161214 
    12171215        # take care of 2D button 
    1218         if data == None and self.model_view.IsEnabled(): 
     1216        if data is None and self.model_view.IsEnabled(): 
    12191217            if self.enable2D: 
    12201218                self.model_view.SetLabel("2D Mode") 
     
    12221220                self.model_view.SetLabel("1D Mode") 
    12231221 
    1224         ## set the select all check box to the a given state 
    1225         self.cb1.SetValue(state.cb1) 
    1226  
    1227         ## reset state of checkbox,textcrtl  and  regular parameters value 
     1222        # reset state of checkbox,textcrtl  and  regular parameters value 
    12281223        self._reset_parameters_state(self.orientation_params_disp, 
    12291224                                     state.orientation_params_disp) 
     
    12331228                                     state.str_parameters) 
    12341229        self._reset_parameters_state(self.parameters, state.parameters) 
    1235         ## display dispersion info layer 
     1230        # display dispersion info layer 
    12361231        self.enable_disp.SetValue(state.enable_disp) 
    12371232        self.disable_disp.SetValue(state.disable_disp) 
     
    12411236            self._set_dipers_Param(event=None) 
    12421237            self._reset_page_disp_helper(state) 
    1243         ##plotting range restore 
     1238        # plotting range restore 
    12441239        self._reset_plotting_range(state) 
    1245         ## smearing info  restore 
     1240        # smearing info  restore 
    12461241        if hasattr(self, "enable_smearer"): 
    1247             ## set smearing value whether or not the data 
    1248             #contain the smearing info 
     1242            # set smearing value whether or not the data 
     1243            # contain the smearing info 
    12491244            self.enable_smearer.SetValue(state.enable_smearer) 
    12501245            self.disable_smearer.SetValue(state.disable_smearer) 
     
    12641259            self.dI_idata.SetValue(False) 
    12651260 
    1266         ## we have two more options for smearing 
     1261        # we have two more options for smearing 
    12671262        if self.pinhole_smearer.GetValue(): 
    12681263            self.dx_min = state.dx_min 
    12691264            self.dx_max = state.dx_max 
    1270             if self.dx_min != None: 
     1265            if self.dx_min is not None: 
    12711266                self.smear_pinhole_min.SetValue(str(self.dx_min)) 
    1272             if self.dx_max != None: 
     1267            if self.dx_max is not None: 
    12731268                self.smear_pinhole_max.SetValue(str(self.dx_max)) 
    12741269            self.onPinholeSmear(event=None) 
     
    12761271            self.dxl = state.dxl 
    12771272            self.dxw = state.dxw 
    1278             if self.dxl != None: 
     1273            if self.dxl is not None: 
    12791274                self.smear_slit_height.SetValue(str(self.dxl)) 
    1280             if self.dxw != None: 
     1275            if self.dxw is not None: 
    12811276                self.smear_slit_width.SetValue(str(self.dxw)) 
    12821277            else: 
     
    12841279            self.onSlitSmear(event=None) 
    12851280 
    1286         ## reset state of checkbox,textcrtl  and dispersity parameters value 
     1281        # reset state of checkbox,textcrtl  and dispersity parameters value 
    12871282        self._reset_parameters_state(self.fittable_param, state.fittable_param) 
    12881283        self._reset_parameters_state(self.fixed_param, state.fixed_param) 
    12891284 
    1290         ## draw the model with previous parameters value 
     1285        # draw the model with previous parameters value 
    12911286        self._onparamEnter_helper() 
    1292         #reset the value of chisqr when not consistent with the value computed 
     1287        # reset the value of chisqr when not consistent with the value computed 
    12931288        self.tcChi.SetValue(str(self.state.tcChi)) 
    1294         ## reset context menu items 
     1289        # reset context menu items 
    12951290        self._reset_context_menu() 
    12961291 
    1297         ## set the value of the current state to the state given as parameter 
     1292        # set the value of the current state to the state given as parameter 
    12981293        self.state = state.clone() 
    12991294        self.state.m_name = self.m_name 
     
    13061301        for item in keys: 
    13071302            if item in self.disp_list and \ 
    1308                 not item in self.model.details: 
     1303                            item not in self.model.details: 
    13091304                self.model.details[item] = ["", None, None] 
    1310         #for k,v in self.state.disp_cb_dict.iteritems(): 
     1305        # for k,v in self.state.disp_cb_dict.iteritems(): 
    13111306        self.disp_cb_dict = copy.deepcopy(state.disp_cb_dict) 
    13121307        self.state.disp_cb_dict = copy.deepcopy(state.disp_cb_dict) 
     
    13151310 
    13161311        for key, disp_type in state._disp_obj_dict.iteritems(): 
    1317             #disp_model = disp 
     1312            # disp_model = disp 
    13181313            disp_model = POLYDISPERSITY_MODELS[disp_type]() 
    13191314            self._disp_obj_dict[key] = disp_model 
     
    13241319                self.model.set_dispersion(param_name, disp_model) 
    13251320                self.model._persistency_dict[key] = \ 
    1326                                  [state.values, state.weights] 
     1321                    [state.values, state.weights] 
    13271322            except Exception: 
    13281323                logging.error(traceback.format_exc()) 
    13291324            selection = self._find_polyfunc_selection(disp_model) 
    13301325            for list in self.fittable_param: 
    1331                 if list[1] == key and list[7] != None: 
     1326                if list[1] == key and list[7] is not None: 
    13321327                    list[7].SetSelection(selection) 
    13331328                    # For the array disp_model, set the values and weights 
     
    13621357        open a dialog file to selected the customized dispersity 
    13631358        """ 
    1364         if self.parent != None: 
     1359        if self.parent is not None: 
    13651360            self._default_save_location = \ 
    13661361                        self._manager.parent.get_save_location() 
     
    13811376        for name, _ in self.state.saved_states.iteritems(): 
    13821377            self.number_saved_state += 1 
    1383             ## Add item in the context menu 
     1378            # Add item in the context menu 
    13841379            wx_id = ids.next() 
    13851380            msg = 'Save model and state %g' % self.number_saved_state 
     
    13981393        save radiobutton containing the type model that can be selected 
    13991394        """ 
    1400         #self.state.shape_rbutton = self.shape_rbutton.GetValue() 
    1401         #self.state.shape_indep_rbutton = self.shape_indep_rbutton.GetValue() 
    1402         #self.state.struct_rbutton = self.struct_rbutton.GetValue() 
    1403         #self.state.plugin_rbutton = self.plugin_rbutton.GetValue() 
     1395        # self.state.shape_rbutton = self.shape_rbutton.GetValue() 
     1396        # self.state.shape_indep_rbutton = self.shape_indep_rbutton.GetValue() 
     1397        # self.state.struct_rbutton = self.struct_rbutton.GetValue() 
     1398        # self.state.plugin_rbutton = self.plugin_rbutton.GetValue() 
    14041399        self.state.structurecombobox = self.structurebox.GetLabel() 
    14051400        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
    14061401        self.state.categorycombobox = self.categorybox.GetLabel() 
    14071402 
    1408         ## post state to fit panel 
     1403        # post state to fit panel 
    14091404        event = PageInfoEvent(page=self) 
    14101405        wx.PostEvent(self.parent, event) 
     
    14181413        self.state.npts = self.npts_x 
    14191414 
    1420     def _onparamEnter_helper(self,is_modified = False): 
     1415    def _onparamEnter_helper(self, is_modified=False): 
    14211416        """ 
    14221417        check if values entered by the user are changed and valid to replot 
     
    14241419        """ 
    14251420        # Flag to register when a parameter has changed. 
    1426         #is_modified = False 
     1421        # is_modified = False 
    14271422        self.fitrange = True 
    14281423        is_2Ddata = False 
    1429         #self._undo.Enable(True) 
     1424        # self._undo.Enable(True) 
    14301425        # check if 2d data 
    14311426        if self.data.__class__.__name__ == "Data2D": 
    14321427            is_2Ddata = True 
    1433         if self.model != None: 
    1434             #Either we get a is_modified = True passed in because 
    1435             #_update_paramv_on_fit() has been called already or 
     1428        if self.model is not None: 
     1429            # Either we get a is_modified = True passed in because 
     1430            # _update_paramv_on_fit() has been called already or 
    14361431            # we need to check here ourselves. 
    14371432            if not is_modified: 
     
    14601455                self.fitrange = False 
    14611456 
    1462             if not self.data.is_data: 
    1463                 is_modified = True 
    1464  
    1465             ## if any value is modify draw model with new value 
     1457            # if any value is modify draw model with new value 
    14661458            if not self.fitrange: 
    1467                 #self.btFit.Disable() 
     1459                # self.btFit.Disable() 
    14681460                if is_2Ddata: 
    14691461                    self.btEditMask.Disable() 
     
    14781470                self._draw_model() 
    14791471                self.Refresh() 
     1472 
     1473        # logging.info("is_modified flag set to %g",is_modified) 
    14801474        return is_modified 
    14811475 
     
    14841478        make sure that update param values just before the fitting 
    14851479        """ 
    1486         #flag for qmin qmax check values 
     1480        # flag for qmin qmax check values 
    14871481        flag = True 
    14881482        self.fitrange = True 
    14891483        is_modified = False 
    14901484 
    1491         #wx.PostEvent(self._manager.parent, StatusEvent(status=" \ 
    1492         #updating ... ",type="update")) 
    1493  
    1494         ##So make sure that update param values on_Fit. 
    1495         #self._undo.Enable(True) 
    1496         if self.model != None: 
     1485        # wx.PostEvent(self._manager.parent, StatusEvent(status=" \ 
     1486        # updating ... ",type="update")) 
     1487 
     1488        # So make sure that update param values on_Fit. 
     1489        # self._undo.Enable(True) 
     1490        if self.model is not None: 
    14971491            if self.Npts_total.GetValue() != self.Npts_fit.GetValue(): 
    14981492                if not self.data.is_data: 
    1499                     self._manager.page_finder[self.uid].set_fit_data(data=\ 
    1500                                                                 [self.data]) 
    1501             ##Check the values 
     1493                    self._manager.page_finder[self.uid].set_fit_data( 
     1494                        data=[self.data]) 
     1495            # Check the values 
    15021496            is_modified = (self._check_value_enter(self.fittable_param) 
    1503                             or self._check_value_enter(self.fixed_param) 
    1504                             or self._check_value_enter(self.parameters)) 
     1497                           or self._check_value_enter(self.fixed_param) 
     1498                           or self._check_value_enter(self.parameters)) 
    15051499 
    15061500            # If qmin and qmax have been modified, update qmin and qmax and 
     
    15431537                                              enable_smearer=enable_smearer, 
    15441538                                              draw=False) 
    1545                     if self.data != None: 
    1546                         index_data = ((self.qmin_x <= self.data.x) & \ 
     1539                    if self.data is not None: 
     1540                        index_data = ((self.qmin_x <= self.data.x) & 
    15471541                                      (self.data.x <= self.qmax_x)) 
    1548                         val = str(len(self.data.x[index_data == True])) 
     1542                        val = str(len(self.data.x[index_data is True])) 
    15491543                        self.Npts_fit.SetValue(val) 
    15501544                    else: 
     
    15661560            flag = False 
    15671561 
    1568         #For invalid q range, disable the mask editor and fit button, vs. 
     1562        # For invalid q range, disable the mask editor and fit button, vs. 
    15691563        if not self.fitrange: 
    15701564            if self._is_2D(): 
    15711565                self.btEditMask.Disable() 
    15721566        else: 
    1573             if self._is_2D() and  self.data.is_data and not self.batch_on: 
     1567            if self._is_2D() and self.data.is_data and not self.batch_on: 
    15741568                self.btEditMask.Enable(True) 
    15751569 
     
    15841578            logging.error(traceback.format_exc()) 
    15851579 
    1586         return flag,is_modified 
     1580        return flag, is_modified 
    15871581 
    15881582    def _reset_parameters_state(self, listtorestore, statelist): 
     
    15981592            item_page = listtorestore[j] 
    15991593            item_page_info = statelist[j] 
    1600             ##change the state of the check box for simple parameters 
    1601             if item_page[0] != None: 
     1594            # change the state of the check box for simple parameters 
     1595            if item_page[0] is not None: 
    16021596                item_page[0].SetValue(item_page_info[0]) 
    1603             if item_page[2] != None: 
     1597            if item_page[2] is not None: 
    16041598                item_page[2].SetValue(item_page_info[2]) 
    16051599                if item_page[2].__class__.__name__ == "ComboBox": 
     
    16071601                        fun_val = self.model.fun_list[item_page_info[2]] 
    16081602                        self.model.setParam(item_page_info[1], fun_val) 
    1609             if item_page[3] != None: 
    1610                 ## show or hide text +/- 
     1603            if item_page[3] is not None: 
     1604                # show or hide text +/- 
    16111605                if item_page_info[2]: 
    16121606                    item_page[3].Show(True) 
    16131607                else: 
    16141608                    item_page[3].Hide() 
    1615             if item_page[4] != None: 
    1616                 ## show of hide the text crtl for fitting error 
     1609            if item_page[4] is not None: 
     1610                # show of hide the text crtl for fitting error 
    16171611                if item_page_info[4][0]: 
    16181612                    item_page[4].Show(True) 
     
    16201614                else: 
    16211615                    item_page[3].Hide() 
    1622             if item_page[5] != None: 
    1623                 ## show of hide the text crtl for fitting error 
     1616            if item_page[5] is not None: 
     1617                # show of hide the text crtl for fitting error 
    16241618                item_page[5].Show(item_page_info[5][0]) 
    16251619                item_page[5].SetValue(item_page_info[5][1]) 
    16261620 
    1627             if item_page[6] != None: 
    1628                 ## show of hide the text crtl for fitting error 
     1621            if item_page[6] is not None: 
     1622                # show of hide the text crtl for fitting error 
    16291623                item_page[6].Show(item_page_info[6][0]) 
    16301624                item_page[6].SetValue(item_page_info[6][1]) 
     
    16421636            item_page = listtorestore[j] 
    16431637            item_page_info = statelist[j] 
    1644             ##change the state of the check box for simple parameters 
    1645  
    1646             if item_page[0] != None: 
     1638            # change the state of the check box for simple parameters 
     1639 
     1640            if item_page[0] is not None: 
    16471641                item_page[0].SetValue(format_number(item_page_info[0], True)) 
    16481642 
    1649             if item_page[2] != None: 
     1643            if item_page[2] is not None: 
    16501644                param_name = item_page_info[1] 
    16511645                value = item_page_info[2] 
     
    16701664 
    16711665            checkbox_state = None 
    1672             if item[0] != None: 
     1666            if item[0] is not None: 
    16731667                checkbox_state = item[0].GetValue() 
    16741668            parameter_name = item[1] 
    16751669            parameter_value = None 
    1676             if item[2] != None: 
     1670            if item[2] is not None: 
    16771671                parameter_value = item[2].GetValue() 
    16781672            static_text = None 
    1679             if item[3] != None: 
     1673            if item[3] is not None: 
    16801674                static_text = item[3].IsShown() 
    16811675            error_value = None 
    16821676            error_state = None 
    1683             if item[4] != None: 
     1677            if item[4] is not None: 
    16841678                error_value = item[4].GetValue() 
    16851679                error_state = item[4].IsShown() 
     
    16871681            min_value = None 
    16881682            min_state = None 
    1689             if item[5] != None: 
     1683            if item[5] is not None: 
    16901684                min_value = item[5].GetValue() 
    16911685                min_state = item[5].IsShown() 
     
    16931687            max_value = None 
    16941688            max_state = None 
    1695             if item[6] != None: 
     1689            if item[6] is not None: 
    16961690                max_value = item[6].GetValue() 
    16971691                max_state = item[6].IsShown() 
    16981692            unit = None 
    1699             if item[7] != None: 
     1693            if item[7] is not None: 
    17001694                unit = item[7].GetLabel() 
    17011695 
     
    17051699                              [max_state, max_value], unit]) 
    17061700 
    1707  
    17081701    def _draw_model(self, update_chisqr=True, source='model'): 
    17091702        """ 
     
    17241717        :param chisqr: update chisqr value [bool] 
    17251718        """ 
    1726         #if self.check_invalid_panel(): 
     1719        # if self.check_invalid_panel(): 
    17271720        #    return 
    1728         if self.model != None: 
     1721        if self.model is not None: 
    17291722            temp_smear = None 
    17301723            if hasattr(self, "enable_smearer"): 
     
    17381731            is_2d = self._is_2D() 
    17391732            self._manager.draw_model(self.model, 
    1740                                     data=self.data, 
    1741                                     smearer=temp_smear, 
    1742                                     qmin=float(self.qmin_x), 
    1743                                     qmax=float(self.qmax_x), 
    1744                                     page_id=self.uid, 
    1745                                     toggle_mode_on=toggle_mode_on, 
    1746                                     state=self.state, 
    1747                                     enable2D=is_2d, 
    1748                                     update_chisqr=update_chisqr, 
    1749                                     source='model', 
    1750                                     weight=weight) 
     1733                                     data=self.data, 
     1734                                     smearer=temp_smear, 
     1735                                     qmin=float(self.qmin_x), 
     1736                                     qmax=float(self.qmax_x), 
     1737                                     page_id=self.uid, 
     1738                                     toggle_mode_on=toggle_mode_on, 
     1739                                     state=self.state, 
     1740                                     enable2D=is_2d, 
     1741                                     update_chisqr=update_chisqr, 
     1742                                     source='model', 
     1743                                     weight=weight) 
    17511744 
    17521745    def _on_show_sld(self, event=None): 
     
    17581751 
    17591752        from sas.sasgui.plottools import Data1D as pf_data1d 
    1760         #from sas.sasgui.perspectives.theory.profile_dialog import SLDPanel 
     1753        # from sas.sasgui.perspectives.theory.profile_dialog import SLDPanel 
    17611754        from sas.sasgui.guiframe.local_perspectives.plotting.profile_dialog \ 
    1762         import SLDPanel 
     1755            import SLDPanel 
    17631756        sld_data = pf_data1d(x, y) 
    17641757        sld_data.name = 'SLD' 
     
    18131806        self.structurebox.Disable() 
    18141807        self.formfactorbox.Clear() 
    1815         if mod_cat == None: 
     1808        if mod_cat is None: 
    18161809            return 
    18171810        m_list = [] 
     
    18751868        """ 
    18761869        tcrtl = event.GetEventObject() 
    1877         #Clear msg if previously shown. 
     1870        # Clear msg if previously shown. 
    18781871        msg = "" 
    18791872        wx.PostEvent(self.parent, StatusEvent(status=msg)) 
     
    18941887                    tcrtl.SetBackgroundColour("pink") 
    18951888                    msg = "Model Error: wrong value entered: %s" % \ 
    1896                                     sys.exc_info()[1] 
     1889                          sys.exc_info()[1] 
    18971890                    wx.PostEvent(self.parent, StatusEvent(status=msg)) 
    18981891                    return 
     
    19021895                wx.PostEvent(self.parent, StatusEvent(status=msg)) 
    19031896                return 
    1904             #Check if # of points for theory model are valid(>0). 
    1905             if self.npts != None: 
     1897            # Check if # of points for theory model are valid(>0). 
     1898            if self.npts is not None: 
    19061899                if check_float(self.npts): 
    19071900                    temp_npts = float(self.npts.GetValue()) 
     
    19191912        wx.PostEvent(self.parent, event) 
    19201913        self.state_change = False 
    1921         #Draw the model for a different range 
     1914        # Draw the model for a different range 
    19221915        if not self.data.is_data: 
    19231916            self.create_default_data() 
     
    19301923 
    19311924        tcrtl = event.GetEventObject() 
    1932         #Clear msg if previously shown. 
     1925        # Clear msg if previously shown. 
    19331926        msg = "" 
    19341927        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
     
    19511944                    tcrtl.SetBackgroundColour("pink") 
    19521945                    msg = "Model Error: wrong value entered: %s" % \ 
    1953                                         sys.exc_info()[1] 
     1946                          sys.exc_info()[1] 
    19541947                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    19551948                    return 
     
    19591952                wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    19601953                return 
    1961             #Check if # of points for theory model are valid(>0). 
     1954            # Check if # of points for theory model are valid(>0). 
    19621955            if self.Npts_total.IsEditable(): 
    19631956                if check_float(self.Npts_total): 
     
    19771970        wx.PostEvent(self.parent, event) 
    19781971        self.state_change = False 
    1979         #Draw the model for a different range 
     1972        # Draw the model for a different range 
    19801973        self.create_default_data() 
    19811974        self._draw_model() 
     
    19851978        call back for model selection 
    19861979        """ 
    1987         ## reset dictionary containing reference to dispersion 
     1980        # reset dictionary containing reference to dispersion 
    19881981        self._disp_obj_dict = {} 
    19891982        self.disp_cb_dict = {} 
    19901983        self.temp_multi_functional = False 
    19911984        f_id = self.formfactorbox.GetCurrentSelection() 
    1992         #For MAC 
     1985        # For MAC 
    19931986        form_factor = None 
    19941987        if f_id >= 0: 
     
    19971990        if form_factor is None or \ 
    19981991            not hasattr(form_factor, 'is_form_factor') or \ 
    1999             not form_factor.is_form_factor: 
     1992                not form_factor.is_form_factor: 
    20001993            self.structurebox.Hide() 
    20011994            self.text2.Hide() 
     
    20092002            self.text2.Enable() 
    20102003 
    2011         if form_factor != None: 
     2004        if form_factor is not None: 
    20122005            # set multifactor for Mutifunctional models 
    20132006            if form_factor.is_multiplicity_model: 
     
    20172010                self._set_multfactor_combobox(multiplicity) 
    20182011                self._show_multfactor_combobox() 
    2019                 #ToDo: this info should be called directly from the model 
     2012                # ToDo: this info should be called directly from the model 
    20202013                text = form_factor.multiplicity_info[1]  # 'No. of Shells: ' 
    20212014 
     
    20262019 
    20272020                self.multi_factor = self.multifactorbox.GetClientData(m_id) 
    2028                 if self.multi_factor == None: 
     2021                if self.multi_factor is None: 
    20292022                    self.multi_factor = 0 
    20302023                self.multifactorbox.SetSelection(m_id) 
     
    20322025                text = '' 
    20332026                if form_factor.multiplicity_info[0] == \ 
    2034                                         len(form_factor.multiplicity_info[2]): 
     2027                        len(form_factor.multiplicity_info[2]): 
    20352028                    text = form_factor.multiplicity_info[2][self.multi_factor] 
    20362029                self.mutifactor_text1.SetLabel(text) 
     
    20532046        struct_factor = self.structurebox.GetClientData(s_id) 
    20542047 
    2055         if  struct_factor != None: 
    2056             from sas.sascalc.fit.MultiplicationModel import MultiplicationModel 
     2048        if struct_factor is not None: 
     2049            from sasmodels.sasview_model import MultiplicationModel 
    20572050            self.model = MultiplicationModel(form_factor(self.multi_factor), 
    20582051                                             struct_factor()) 
     
    20602053            if len(form_factor.non_fittable) > 0: 
    20612054                self.temp_multi_functional = True 
    2062         elif form_factor != None: 
     2055        elif form_factor is not None: 
    20632056            if self.multi_factor is not None: 
    20642057                self.model = form_factor(self.multi_factor) 
     
    20752068        else: 
    20762069            self._has_magnetic = False 
    2077         ## post state to fit panel 
     2070        # post state to fit panel 
    20782071        self.state.parameters = [] 
    20792072        self.state.model = self.model 
     
    20852078        self.Layout() 
    20862079 
    2087  
    20882080    def _validate_qrange(self, qmin_ctrl, qmax_ctrl): 
    20892081        """ 
     
    21052097            qmax = float(qmax_ctrl.GetValue()) 
    21062098            if qmin < qmax: 
    2107                 #Make sure to set both colours white. 
     2099                # Make sure to set both colours white. 
    21082100                qmin_ctrl.SetBackgroundColour(wx.WHITE) 
    21092101                qmin_ctrl.Refresh() 
     
    21252117        If valid, setvalues Npts_fit otherwise post msg. 
    21262118        """ 
    2127         #default flag 
     2119        # default flag 
    21282120        flag = True 
    21292121        # Theory 
    2130         if self.data == None and self.enable2D: 
     2122        if self.data is None and self.enable2D: 
    21312123            return flag 
    21322124        for data in self.data_list: 
     
    21342126            radius = numpy.sqrt(data.qx_data * data.qx_data + 
    21352127                                data.qy_data * data.qy_data) 
    2136             #get unmasked index 
     2128            # get unmasked index 
    21372129            index_data = (float(self.qmin.GetValue()) <= radius) & \ 
    2138                             (radius <= float(self.qmax.GetValue())) 
     2130                         (radius <= float(self.qmax.GetValue())) 
    21392131            index_data = (index_data) & (data.mask) 
    21402132            index_data = (index_data) & (numpy.isfinite(data.data)) 
     
    21522144                flag = False 
    21532145            else: 
    2154                 self.Npts_fit.SetValue(str(len(index_data[index_data == True]))) 
     2146                self.Npts_fit.SetValue(str(len(index_data[index_data is True]))) 
    21552147                self.fitrange = True 
    21562148 
     
    21622154        If valid, setvalues Npts_fit otherwise post msg. 
    21632155        """ 
    2164         #default flag 
     2156        # default flag 
    21652157        flag = True 
    21662158        # Theory 
    2167         if self.data == None: 
     2159        if self.data is None: 
    21682160            return flag 
    21692161        for data in self.data_list: 
    21702162            # q value from qx and qy 
    21712163            radius = data.x 
    2172             #get unmasked index 
     2164            # get unmasked index 
    21732165            index_data = (float(self.qmin.GetValue()) <= radius) & \ 
    2174                             (radius <= float(self.qmax.GetValue())) 
     2166                         (radius <= float(self.qmax.GetValue())) 
    21752167            index_data = (index_data) & (numpy.isfinite(data.y)) 
    21762168 
     
    21872179                flag = False 
    21882180            else: 
    2189                 self.Npts_fit.SetValue(str(len(index_data[index_data == True]))) 
     2181                self.Npts_fit.SetValue(str(len(index_data[index_data is True]))) 
    21902182                self.fitrange = True 
    21912183 
     
    22072199        is_modified = False 
    22082200        for item in list: 
    2209             #skip angle parameters for 1D 
     2201            # skip angle parameters for 1D 
    22102202            if not self.enable2D and item in self.orientation_params: 
    22112203                continue 
     
    22522244                    max_ctrl.SetBackgroundColour("pink") 
    22532245                    max_ctrl.Refresh() 
    2254                     #msg = "Invalid fit range for %s: min must be smaller than max"%name 
    2255                     #wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
     2246                    # msg = "Invalid fit range for %s: min must be smaller 
     2247                    # than max"%name 
     2248                    # wx.PostEvent(self._manager.parent, 
     2249                    # StatusEvent(status=msg)) 
    22562250                    continue 
    22572251 
     
    22712265                    # The configuration has changed but it won't change the 
    22722266                    # computed curve so no need to set is_modified to True 
    2273                     #is_modified = True 
     2267                    # is_modified = True 
    22742268                    self.model.details[name][1:3] = low, high 
    22752269 
     
    22892283        Redraw the model with the default dispersity (Gaussian) 
    22902284        """ 
    2291         ## On selction if no model exists. 
    2292         if self.model == None: 
     2285        # On selction if no model exists. 
     2286        if self.model is None: 
    22932287            self.disable_disp.SetValue(True) 
    22942288            msg = "Please select a Model first..." 
     
    23002294        self._reset_dispersity() 
    23012295 
    2302         if self.model == None: 
     2296        if self.model is None: 
    23032297            self.model_disp.Hide() 
    23042298            self.sizer4_4.Clear(True) 
     
    23062300 
    23072301        if self.enable_disp.GetValue(): 
    2308             ## layout for model containing no dispersity parameters 
     2302            # layout for model containing no dispersity parameters 
    23092303 
    23102304            self.disp_list = self.model.getDispParamList() 
     
    23132307                self._layout_sizer_noDipers() 
    23142308            else: 
    2315                 ## set gaussian sizer 
     2309                # set gaussian sizer 
    23162310                self._on_select_Disp(event=None) 
    23172311        else: 
    23182312            self.sizer4_4.Clear(True) 
    23192313 
    2320         ## post state to fit panel 
     2314        # post state to fit panel 
    23212315        self.save_current_state() 
    2322         if event != None: 
     2316        if event is not None: 
    23232317            event = PageInfoEvent(page=self) 
    23242318            wx.PostEvent(self.parent, event) 
    2325         #draw the model with the current dispersity 
    2326  
    2327         #Wojtek P, Oct 8, 2016: Calling draw_model seems to be unessecary. 
    2328         #By comenting it we save an extra Iq calculation 
    2329         #self._draw_model() 
    2330  
    2331         ## Need to use FitInside again here to replace the next four lines. 
    2332         ## Otherwised polydispersity off does not resize the scrollwindow. 
    2333         ## PDB Nov 28, 2015 
     2319        # draw the model with the current dispersity 
     2320 
     2321        # Wojtek P, Oct 8, 2016: Calling draw_model seems to be unessecary. 
     2322        # By comenting it we save an extra Iq calculation 
     2323        # self._draw_model() 
     2324 
     2325        # Need to use FitInside again here to replace the next four lines. 
     2326        # Otherwised polydispersity off does not resize the scrollwindow. 
     2327        # PDB Nov 28, 2015 
    23342328        self.FitInside() 
    23352329#        self.sizer4_4.Layout() 
     
    23752369        self.weights = {} 
    23762370 
    2377         #from sas.models.dispersion_models import GaussianDispersion 
     2371        # from sas.models.dispersion_models import GaussianDispersion 
    23782372        from sasmodels.weights import GaussianDispersion 
    23792373        if len(self.disp_cb_dict) == 0: 
     
    23962390                    logging.error(traceback.format_exc()) 
    23972391 
    2398         ## save state into 
     2392        # save state into 
    23992393        self.save_current_state() 
    24002394        self.Layout() 
     
    24082402        self._set_sizer_dispersion() 
    24092403 
    2410         ## Redraw the model 
     2404        # Redraw the model 
    24112405        self._draw_model() 
    2412         #self._undo.Enable(True) 
     2406        # self._undo.Enable(True) 
    24132407        event = PageInfoEvent(page=self) 
    24142408        wx.PostEvent(self.parent, event) 
     
    24252419        """ 
    24262420        # get ready for new event 
    2427         if event != None: 
     2421        if event is not None: 
    24282422            event.Skip() 
    24292423        # Get event object 
     
    24382432            dispersity = disp_box.GetClientData(selection) 
    24392433 
    2440             #disp_model =  GaussianDispersion() 
     2434            # disp_model =  GaussianDispersion() 
    24412435            disp_model = dispersity() 
    24422436            # Get param names to reset the values of the param 
     
    24512445            else: 
    24522446                self._del_array_values(name1) 
    2453                 #self._reset_array_disp(param_name) 
     2447                # self._reset_array_disp(param_name) 
    24542448                self._disp_obj_dict[name1] = disp_model 
    24552449                self.model.set_dispersion(param_name, disp_model) 
     
    25372531        if path is None: 
    25382532            self.disp_cb_dict[name].SetValue(False) 
    2539             #self.noDisper_rbox.SetValue(True) 
     2533            # self.noDisper_rbox.SetValue(True) 
    25402534            return 
    25412535        self._default_save_location = os.path.dirname(path) 
    2542         if self._manager != None: 
     2536        if self._manager is not None: 
    25432537            self._manager.parent._default_save_location = \ 
    25442538                             self._default_save_location 
     
    25572551        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    25582552        self._set_array_disp_model(name=name, disp=disp, 
    2559                                     values=values, weights=weights) 
     2553                                   values=values, weights=weights) 
    25602554        return basename 
    25612555 
     
    25762570        # Store the object to make it persist outside the 
    25772571        # scope of this method 
    2578         #TODO: refactor model to clean this up? 
     2572        # TODO: refactor model to clean this up? 
    25792573        self.state.values = {} 
    25802574        self.state.weights = {} 
     
    25832577 
    25842578        # Set the new model as the dispersion object for the 
    2585         #selected parameter 
    2586         #self.model.set_dispersion(p, disp_model) 
     2579        # selected parameter 
     2580        # self.model.set_dispersion(p, disp_model) 
    25872581        # Store a reference to the weights in the model object 
    2588         #so that 
     2582        # so that 
    25892583        # it's not lost when we use the model within another thread. 
    25902584        self.state.model = self.model.clone() 
    25912585        self.model._persistency_dict[name.split('.')[0]] = \ 
    2592                                         [values, weights] 
     2586            [values, weights] 
    25932587        self.state.model._persistency_dict[name.split('.')[0]] = \ 
    2594                                         [values, weights] 
     2588            [values, weights] 
    25952589 
    25962590    def _del_array_values(self, name=None): 
     
    26302624            Layout after self._draw_model 
    26312625        """ 
    2632         if ON_MAC == True: 
     2626        if ON_MAC is True: 
    26332627            time.sleep(1) 
    26342628 
     
    26522646        """ 
    26532647        flag = True 
    2654         ##For 3 different cases: Data2D, Data1D, and theory 
    2655         if self.model == None: 
     2648        # For 3 different cases: Data2D, Data1D, and theory 
     2649        if self.model is None: 
    26562650            msg = "Please select a model first..." 
    26572651            wx.MessageBox(msg, 'Info') 
     
    26652659            self.qmin_x = data_min 
    26662660            self.qmax_x = math.sqrt(x * x + y * y) 
    2667             #self.data.mask = numpy.ones(len(self.data.data),dtype=bool) 
     2661            # self.data.mask = numpy.ones(len(self.data.data),dtype=bool) 
    26682662            # check smearing 
    26692663            if not self.disable_smearer.GetValue(): 
    2670                 ## set smearing value whether or 
     2664                # set smearing value whether or 
    26712665                # not the data contain the smearing info 
    26722666                if self.pinhole_smearer.GetValue(): 
     
    26752669                    flag = True 
    26762670 
    2677         elif self.data == None: 
     2671        elif self.data is None: 
    26782672            self.qmin_x = _QMIN_DEFAULT 
    26792673            self.qmax_x = _QMAX_DEFAULT 
     
    26862680            # check smearing 
    26872681            if not self.disable_smearer.GetValue(): 
    2688                 ## set smearing value whether or 
     2682                # set smearing value whether or 
    26892683                # not the data contain the smearing info 
    26902684                if self.slit_smearer.GetValue(): 
     
    26972691            flag = False 
    26982692 
    2699         if flag == False: 
     2693        if flag is False: 
    27002694            msg = "Cannot Plot :Must enter a number!!!  " 
    27012695            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
     
    27142708        self.state.qmax = self.qmax_x 
    27152709 
    2716         #reset the q range values 
     2710        # reset the q range values 
    27172711        self._reset_plotting_range(self.state) 
    27182712        self._draw_model() 
     
    27552749                logging.error(traceback.format_exc()) 
    27562750        # Make sure the resduals plot goes to the last 
    2757         if res_item != None: 
     2751        if res_item is not None: 
    27582752            graphs.append(res_item[0]) 
    27592753            canvases.append(res_item[1]) 
     
    27742768        the # to the browser. 
    27752769 
    2776         :param evt: on Help Button pressed event 
    2777         """ 
    2778  
    2779         if self.model != None: 
     2770        :param event: on Help Button pressed event 
     2771        """ 
     2772 
     2773        if self.model is not None: 
    27802774            name = self.formfactorbox.GetValue() 
    2781             _TreeLocation = 'user/models/'+ name.lower()+'.html' 
     2775            _TreeLocation = 'user/models/' + name.lower()+'.html' 
    27822776            _doc_viewer = DocumentationWindow(self, wx.ID_ANY, _TreeLocation, 
    27832777                                              "", name + " Help") 
     
    27862780            _doc_viewer = DocumentationWindow(self, wx.ID_ANY, _TreeLocation, 
    27872781                                              "", "General Model Help") 
    2788  
    27892782 
    27902783    def on_model_help_clicked(self, event): 
     
    27982791        give the message that none is available. 
    27992792 
    2800         :param evt: on Description Button pressed event 
    2801         """ 
    2802  
    2803         if self.model == None: 
     2793        :param event: on Description Button pressed event 
     2794        """ 
     2795 
     2796        if self.model is None: 
    28042797            name = 'index.html' 
    28052798        else: 
     
    28082801        msg = 'Model description:\n' 
    28092802        info = "Info" 
    2810         if self.model != None: 
    2811 #                frame.Destroy() 
     2803        if self.model is not None: 
     2804            # frame.Destroy() 
    28122805            if str(self.model.description).rstrip().lstrip() == '': 
    28132806                msg += "Sorry, no information is available for this model." 
     
    28782871            for key in self.model.magnetic_params: 
    28792872                if key.count('M0') > 0: 
    2880                     #reset mag value to zero fo safety 
     2873                    # reset mag value to zero fo safety 
    28812874                    self.model.setParam(key, 0.0) 
    28822875 
    28832876        self.Show(False) 
    28842877        self.set_model_param_sizer(self.model) 
    2885         #self._set_sizer_dispersion() 
     2878        # self._set_sizer_dispersion() 
    28862879        self.state.magnetic_on = self.magnetic_on 
    28872880        self.SetupScrolling() 
     
    28982891        running "file:///...." 
    28992892 
    2900         :param evt: Triggers on clicking ? in polydispersity box 
     2893        :param event: Triggers on clicking ? in polydispersity box 
    29012894        """ 
    29022895 
     
    29362929        content = 'sasview_parameter_values:' 
    29372930        # Do it if params exist 
    2938         if  self.parameters != []: 
     2931        if self.parameters: 
    29392932 
    29402933            # go through the parameters 
     
    29802973 
    29812974        # Do it if params exist 
    2982         if  self.parameters != []: 
     2975        if self.parameters: 
    29832976 
    29842977            for param in self.parameters: 
    2985                 content += param[1] #parameter name 
     2978                content += param[1]  # parameter name 
    29862979                content += tab 
    29872980                content += param[1] + "_err" 
     
    29902983            content += crlf 
    29912984 
    2992             #row of values and errors... 
     2985            # row of values and errors... 
    29932986            for param in self.parameters: 
    2994                 content += param[2].GetValue() #value 
     2987                content += param[2].GetValue()  # value 
    29952988                content += tab 
    2996                 content += param[4].GetValue() #error 
     2989                content += param[4].GetValue()  # error 
    29972990                content += tab 
    29982991 
     
    30002993        else: 
    30012994            return False 
    3002  
    30032995 
    30042996    def get_copy_latex(self): 
     
    30223014 
    30233015        # Do it if params exist 
    3024         if  self.parameters != []: 
     3016        if self.parameters: 
    30253017 
    30263018            content += '{|' 
     
    30313023 
    30323024            for index, param in enumerate(self.parameters): 
    3033                 content += param[1].replace('_', '\_') #parameter name 
     3025                content += param[1].replace('_', '\_')  # parameter name 
    30343026                content += ' & ' 
    30353027                content += param[1].replace('_', '\_') + "\_err" 
     
    30393031            content += crlf 
    30403032 
    3041             #row of values and errors... 
     3033            # row of values and errors... 
    30423034            for index, param in enumerate(self.parameters): 
    3043                 content += param[2].GetValue() #parameter value 
     3035                content += param[2].GetValue()  # parameter value 
    30443036                content += ' & ' 
    3045                 content += param[4].GetValue() #parameter error 
     3037                content += param[4].GetValue()  # parameter error 
    30463038                if index < len(self.parameters) - 1: 
    30473039                    content += ' & ' 
     
    30543046        else: 
    30553047            return False 
    3056  
    30573048 
    30583049    def set_clipboard(self, content=None): 
     
    31013092            # 1D 
    31023093            else: 
    3103                 ## for 1D all parameters except orientation 
     3094                # for 1D all parameters except orientation 
    31043095                if not item[1] in orient_param: 
    31053096                    try: 
     
    31333124            except Exception: 
    31343125                logging.error(traceback.format_exc()) 
    3135             content += name + ',' + str(check) + ',' +\ 
    3136                     value + disfunc + ',' + bound_lo + ',' +\ 
    3137                     bound_hi + ':' 
     3126            content += name + ',' + str(check) + ',' + value + disfunc + ',' + \ 
     3127                       bound_lo + ',' + bound_hi + ':' 
    31383128 
    31393129        return content 
     
    32133203 
    32143204        # Do it if params exist 
    3215         if  self.parameters != []: 
     3205        if self.parameters: 
    32163206            # go through the parameters 
    32173207            self._get_paste_helper(self.parameters, 
     
    32613251                                pd = int(pd) 
    32623252                        except Exception: 
    3263                             #continue 
     3253                            # continue 
    32643254                            if not pd and pd != '': 
    32653255                                continue 
     
    32893279                    else: 
    32903280                        is_true = None 
    3291                     if is_true != None: 
     3281                    if is_true is not None: 
    32923282                        item[0].SetValue(is_true) 
    32933283            # 1D 
    32943284            else: 
    3295                 ## for 1D all parameters except orientation 
     3285                # for 1D all parameters except orientation 
    32963286                if not item[1] in orient_param: 
    32973287                    name = item[1] 
     
    33023292                        pd = value[0] 
    33033293                        if name.count('.') > 0: 
    3304                             # If this is parameter.width, then pd may be a floating 
    3305                             # point value or it may be an array distribution. 
    3306                             # Nothing to do for parameter.npts or parameter.nsigmas. 
     3294                            # If this is parameter.width, then pd may be a 
     3295                            # floating point value or it may be an array 
     3296                            # distribution. Nothing to do for parameter.npts or 
     3297                            # parameter.nsigmas. 
    33073298                            try: 
    33083299                                pd = float(pd) 
     
    33103301                                    pd = int(pd) 
    33113302                            except: 
    3312                                 #continue 
     3303                                # continue 
    33133304                                if not pd and pd != '': 
    33143305                                    continue 
     
    33383329                        else: 
    33393330                            is_true = None 
    3340                         if is_true != None: 
     3331                        if is_true is not None: 
    33413332                            item[0].SetValue(is_true) 
     3333 
     3334        self.select_param(event=None) 
     3335        self.Refresh() 
    33423336 
    33433337    def _paste_poly_help(self, item, value): 
     
    34023396            logging.error(traceback.format_exc()) 
    34033397            print "Error in BasePage._paste_poly_help: %s" % \ 
    3404                                     sys.exc_info()[1] 
     3398                  sys.exc_info()[1] 
    34053399 
    34063400    def _set_disp_cb(self, isarray, item): 
     
    34683462        self.categorybox.Clear() 
    34693463        cat_list = sorted(self.master_category_dict.keys()) 
    3470         if not uncat_str in cat_list: 
     3464        if uncat_str not in cat_list: 
    34713465            cat_list.append(uncat_str) 
    34723466 
     
    34783472            self.categorybox.SetSelection(0) 
    34793473        else: 
    3480             self.categorybox.SetSelection(\ 
     3474            self.categorybox.SetSelection( 
    34813475                self.categorybox.GetSelection()) 
    3482         #self._on_change_cat(None) 
     3476        # self._on_change_cat(None) 
    34833477 
    34843478    def _on_change_cat(self, event): 
     
    34883482        self.model_name = None 
    34893483        category = self.categorybox.GetStringSelection() 
    3490         if category == None: 
     3484        if category is None: 
    34913485            return 
    34923486        self.model_box.Clear() 
     
    34993493        else: 
    35003494            for (model, enabled) in sorted(self.master_category_dict[category], 
    3501                                       key=lambda name: name[0]): 
     3495                                           key=lambda name: name[0]): 
    35023496                if(enabled): 
    35033497                    self.model_box.Append(model) 
     
    35083502        """ 
    35093503        # This should only be called once per fit tab 
    3510         #print "==== Entering _fill_model_sizer" 
    3511         ##Add model function Details button in fitpanel. 
    3512         ##The following 3 lines are for Mac. Let JHC know before modifying... 
     3504        # print "==== Entering _fill_model_sizer" 
     3505        # Add model function Details button in fitpanel. 
     3506        # The following 3 lines are for Mac. Let JHC know before modifying... 
    35133507        title = "Model" 
    35143508        self.formfactorbox = None 
     
    35423536        self._populate_listbox() 
    35433537        wx.EVT_COMBOBOX(self.categorybox, wx.ID_ANY, self._show_combox) 
    3544         #self.shape_rbutton = wx.RadioButton(self, wx.ID_ANY, 'Shapes', 
     3538        # self.shape_rbutton = wx.RadioButton(self, wx.ID_ANY, 'Shapes', 
    35453539        #                                     style=wx.RB_GROUP) 
    3546         #self.shape_indep_rbutton = wx.RadioButton(self, wx.ID_ANY, 
     3540        # self.shape_indep_rbutton = wx.RadioButton(self, wx.ID_ANY, 
    35473541        #                                          "Shape-Independent") 
    3548         #self.struct_rbutton = wx.RadioButton(self, wx.ID_ANY, 
     3542        # self.struct_rbutton = wx.RadioButton(self, wx.ID_ANY, 
    35493543        #                                     "Structure Factor ") 
    3550         #self.plugin_rbutton = wx.RadioButton(self, wx.ID_ANY, 
     3544        # self.plugin_rbutton = wx.RadioButton(self, wx.ID_ANY, 
    35513545        #                                     "Uncategorized") 
    35523546 
    3553         #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3547        # self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
    35543548        #                   id=self.shape_rbutton.GetId()) 
    3555         #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3549        # self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
    35563550        #                    id=self.shape_indep_rbutton.GetId()) 
    3557         #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3551        # self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
    35583552        #                    id=self.struct_rbutton.GetId()) 
    3559         #self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     3553        # self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
    35603554        #                    id=self.plugin_rbutton.GetId()) 
    3561         #MAC needs SetValue 
     3555        # MAC needs SetValue 
    35623556 
    35633557        show_cat_button = wx.Button(self, wx.ID_ANY, "Modify") 
    35643558        cat_tip = "Modify model categories \n" 
    35653559        cat_tip += "(also accessible from the menu bar)." 
    3566         show_cat_button.SetToolTip( wx.ToolTip(cat_tip) ) 
     3560        show_cat_button.SetToolTip(wx.ToolTip(cat_tip)) 
    35673561        show_cat_button.Bind(wx.EVT_BUTTON, self._on_modify_cat) 
    35683562        sizer_cat_box.Add(self.categorybox, 1, wx.RIGHT, 3) 
    3569         sizer_cat_box.Add((10,10)) 
     3563        sizer_cat_box.Add((10, 10)) 
    35703564        sizer_cat_box.Add(show_cat_button) 
    3571         #self.shape_rbutton.SetValue(True) 
     3565        # self.shape_rbutton.SetValue(True) 
    35723566 
    35733567        sizer_radiobutton = wx.GridSizer(2, 2, 5, 5) 
    3574         #sizer_radiobutton.Add(self.shape_rbutton) 
    3575         #sizer_radiobutton.Add(self.shape_indep_rbutton) 
    3576         sizer_radiobutton.Add((5,5)) 
     3568        # sizer_radiobutton.Add(self.shape_rbutton) 
     3569        # sizer_radiobutton.Add(self.shape_indep_rbutton) 
     3570        sizer_radiobutton.Add((5, 5)) 
    35773571        sizer_radiobutton.Add(self.model_view, 1, wx.RIGHT, 5) 
    3578         #sizer_radiobutton.Add(self.plugin_rbutton) 
    3579         #sizer_radiobutton.Add(self.struct_rbutton) 
    3580 #        sizer_radiobutton.Add((5,5)) 
     3572        # sizer_radiobutton.Add(self.plugin_rbutton) 
     3573        # sizer_radiobutton.Add(self.struct_rbutton) 
     3574        # sizer_radiobutton.Add((5,5)) 
    35813575        sizer_radiobutton.Add(self.model_help, 1, wx.RIGHT | wx.LEFT, 5) 
    3582 #        sizer_radiobutton.Add((5,5)) 
     3576        # sizer_radiobutton.Add((5,5)) 
    35833577        sizer_radiobutton.Add(self.model_func, 1, wx.RIGHT, 5) 
    35843578        sizer_cat.Add(sizer_cat_box, 1, wx.LEFT, 2.5) 
     
    35963590        self.formfactorbox = wx.ComboBox(self, wx.ID_ANY, style=wx.CB_READONLY) 
    35973591        self.formfactorbox.SetToolTip(wx.ToolTip("Select a Model")) 
    3598         if self.model != None: 
     3592        if self.model is not None: 
    35993593            self.formfactorbox.SetValue(self.model.name) 
    36003594        self.structurebox = wx.ComboBox(self, wx.ID_ANY, style=wx.CB_READONLY) 
     
    36053599        wx.EVT_COMBOBOX(self.structurebox, wx.ID_ANY, self._on_select_model) 
    36063600        wx.EVT_COMBOBOX(self.multifactorbox, wx.ID_ANY, self._on_select_model) 
    3607         ## check model type to show sizer 
    3608         if self.model != None: 
     3601        # check model type to show sizer 
     3602        if self.model is not None: 
    36093603            print "_set_model_sizer_selection: disabled." 
    3610             #self._set_model_sizer_selection(self.model) 
     3604            # self._set_model_sizer_selection(self.model) 
    36113605 
    36123606        sizer_selection.Add(self.text1) 
     
    37073701        """ 
    37083702 
     3703 
    37093704class ModelTextCtrl(wx.TextCtrl): 
    37103705    """ 
     
    37193714 
    37203715    """ 
    3721     ## Set to True when the mouse is clicked while whole string is selected 
     3716    # Set to True when the mouse is clicked while whole string is selected 
    37223717    full_selection = False 
    3723     ## Call back for EVT_SET_FOCUS events 
     3718    # Call back for EVT_SET_FOCUS events 
    37243719    _on_set_focus_callback = None 
    37253720 
     
    37433738            if set_focus_callback is None else set_focus_callback 
    37443739        self.Bind(wx.EVT_SET_FOCUS, self._on_set_focus) 
    3745         self.Bind(wx.EVT_KILL_FOCUS, self._silent_kill_focus \ 
    3746             if kill_focus_callback is None else kill_focus_callback) 
    3747         self.Bind(wx.EVT_TEXT_ENTER, parent._onparamEnter \ 
    3748             if text_enter_callback is None else text_enter_callback) 
     3740        self.Bind(wx.EVT_KILL_FOCUS, self._silent_kill_focus 
     3741        if kill_focus_callback is None else kill_focus_callback) 
     3742        self.Bind(wx.EVT_TEXT_ENTER, parent._onparamEnter 
     3743        if text_enter_callback is None else text_enter_callback) 
    37493744        if not ON_MAC: 
    3750             self.Bind(wx.EVT_LEFT_UP, self._highlight_text \ 
    3751                 if mouse_up_callback is None else mouse_up_callback) 
     3745            self.Bind(wx.EVT_LEFT_UP, self._highlight_text 
     3746            if mouse_up_callback is None else mouse_up_callback) 
    37523747 
    37533748    def _on_set_focus(self, event): 
     
    37893784 
    37903785        event.Skip() 
    3791         #pass 
     3786        # pass 
Note: See TracChangeset for help on using the changeset viewer.