Changes in / [ce0a245:2a399ca] in sasview


Ignore:
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • docs/sphinx-docs/source/conf.py

    r6394851 r959eb01  
    3939              'sphinx.ext.viewcode'] 
    4040 
    41 #set mathjax path 
    42 mathjax_path="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML" 
    43  
    4441# Add any paths that contain templates here, relative to this directory. 
    4542templates_path = ['_templates'] 
     
    6562version = '4.1' 
    6663# The full version, including alpha/beta/rc tags. 
    67 release = '4.1.2' 
     64release = '4.1.0' 
    6865 
    6966# The language for content autogenerated by Sphinx. Refer to documentation 
  • sasview/README.txt

    r6394851 r311d00a  
    441- Features 
    55=========== 
    6     - New in Version 4.1.2 
    7       -------------------- 
    8       This point release is a bug-fix release addressing: 
    9  
    10        - Fixes #984: PDF Reports Generate Empty PDFs 
    11        - Fixes a path typo 
    12        - 64 bit and 32 bit Windows executables now available 
    13  
    14       It is recommended that all users upgrade to this version 
    15  
    16     - New in Version 4.1.1 
    17       -------------------- 
    18       This point release is a bug-fix release addressing: 
    19  
    20        - Fixes #948: Mathjax CDN is going away 
    21        - Fixes #938: Cannot read canSAS1D file output by SasView 
    22        - Fixes #960: Save project throws error if empty fit page 
    23        - Fixes #929: Problem deleting data in first fit page 
    24        - Fixes #918: Test folders not bundled with release 
    25        - Fixes an issue with the live discovery of plugin models 
    26        - Fixes an issue with the NXcanSAS data loader 
    27        - Updated tutorials for SasView 4.x.y 
    28  
    296    - New in Version 4.1.0 
    307      ------------------ 
  • sasview/__init__.py

    r6394851 r463e7ffc  
    1 __version__ = "4.1.2" 
     1__version__ = "4.1" 
    22__build__ = "GIT_COMMIT" 
    33 
  • sasview/local_config.py

    rd908932 ra1b8fee  
    4747'''This work benefited from the use of the SasView application, originally developed under NSF Award DMR-0520547. SasView also contains code developed with funding from the EU Horizon 2020 programme under the SINE2020 project Grant No 654000.''' 
    4848_acknowledgement_citation = \ 
    49 '''M. Doucet et al. SasView Version 4.1.2, Zenodo, 10.5281/zenodo.825675''' 
     49'''M. Doucet et al. SasView Version 4.1, Zenodo, 10.5281/zenodo.438138''' 
    5050 
    5151_acknowledgement =  \ 
  • sasview/sasview.spec

    r945f45d re42c8e9d  
    138138 'sasmodels.core', 
    139139 'pyopencl', 
    140  'tinycc', 
    141  'xhtml2pdf' 
     140 'tinycc' 
    142141] 
    143142 
  • sasview/setup_exe.py

    r3563e06 ra1b8fee  
    179179test_1d_dir = os.path.join(path, "test\\1d_data") 
    180180test_2d_dir = os.path.join(path, "test\\2d_data") 
    181 test_sesans_dir = os.path.join(path, "test\\sesans_data") 
    182 test_convertible_dir = os.path.join(path, "test\\convertible_files") 
    183181test_save_dir = os.path.join(path, "test\\save_states") 
    184 test_coord_dir = os.path.join(path, "test\\coordinate_data") 
    185 test_image_dir = os.path.join(path, "test\\image_data") 
    186 test_other_dir = os.path.join(path, "test\\other_files") 
     182test_upcoming_dir = os.path.join(path, "test\\upcoming_formats") 
    187183 
    188184matplotlibdatadir = matplotlib.get_data_path() 
     
    273269# Copying the images directory to the distribution directory. 
    274270for f in findall(images_dir): 
    275     data_files.append(("images", [f])) 
     271    if not ".svn" in f: 
     272        data_files.append(("images", [f])) 
    276273 
    277274# Copying the HTML help docs 
    278275for f in findall(media_dir): 
    279     data_files.append(("media", [f])) 
     276    if not ".svn" in f: 
     277        data_files.append(("media", [f])) 
    280278 
    281279# Copying the sample data user data 
    282280for f in findall(test_1d_dir): 
    283     data_files.append(("test\\1d_data", [f])) 
     281    if not ".svn" in f: 
     282        data_files.append(("test\\1d_data", [f])) 
     283 
     284# Copying the sample data user data 
    284285for f in findall(test_2d_dir): 
    285     data_files.append(("test\\2d_data", [f])) 
     286    if not ".svn" in f: 
     287        data_files.append(("test\\2d_data", [f])) 
     288 
     289# Copying the sample data user data 
    286290for f in findall(test_save_dir): 
    287     data_files.append(("test\\save_states", [f])) 
    288 for f in findall(test_sesans_dir): 
    289     data_files.append(("test\\sesans_data", [f])) 
    290 for f in findall(test_convertible_dir): 
    291     data_files.append(("test\\convertible_files", [f])) 
    292 for f in findall(test_coord_dir): 
    293     data_files.append(("test\\coordinate_data", [f])) 
    294 for f in findall(test_image_dir): 
    295     data_files.append(("test\\image_data", [f])) 
    296 for f in findall(test_other_dir): 
    297     data_files.append(("test\\other_files", [f])) 
     291    if not ".svn" in f: 
     292        data_files.append(("test\\save_states", [f])) 
     293 
     294# Copying the sample data user data 
     295for f in findall(test_upcoming_dir): 
     296    if not ".svn" in f: 
     297        data_files.append(("test\\upcoming_formats", [f])) 
    298298 
    299299# Copying opencl include files 
  • src/sas/sascalc/dataloader/file_reader_base_class.py

    rae69c690 ra78a02f  
    115115                data.y = np.asarray([data.y[i] for i in ind]).astype(np.float64) 
    116116                if data.dx is not None: 
    117                     if len(data.dx) == 0: 
    118                         data.dx = None 
    119                         continue 
    120117                    data.dx = np.asarray([data.dx[i] for i in ind]).astype(np.float64) 
    121118                if data.dxl is not None: 
     
    124121                    data.dxw = np.asarray([data.dxw[i] for i in ind]).astype(np.float64) 
    125122                if data.dy is not None: 
    126                     if len(data.dy) == 0: 
    127                         data.dy = None 
    128                         continue 
    129123                    data.dy = np.asarray([data.dy[i] for i in ind]).astype(np.float64) 
    130124                if data.lam is not None: 
     
    191185        self.output = [] 
    192186 
    193     def remove_empty_q_values(self, has_error_dx=False, has_error_dy=False, 
    194                               has_error_dxl=False, has_error_dxw=False): 
     187    def remove_empty_q_values(self, has_error_dx=False, has_error_dy=False): 
    195188        """ 
    196189        Remove any point where Q == 0 
     
    199192        self.current_dataset.x = self.current_dataset.x[x != 0] 
    200193        self.current_dataset.y = self.current_dataset.y[x != 0] 
    201         if has_error_dy: 
    202             self.current_dataset.dy = self.current_dataset.dy[x != 0] 
    203         if has_error_dx: 
    204             self.current_dataset.dx = self.current_dataset.dx[x != 0] 
    205         if has_error_dxl: 
    206             self.current_dataset.dxl = self.current_dataset.dxl[x != 0] 
    207         if has_error_dxw: 
    208             self.current_dataset.dxw = self.current_dataset.dxw[x != 0] 
     194        self.current_dataset.dy = self.current_dataset.dy[x != 0] if \ 
     195            has_error_dy else np.zeros(len(self.current_dataset.y)) 
     196        self.current_dataset.dx = self.current_dataset.dx[x != 0] if \ 
     197            has_error_dx else np.zeros(len(self.current_dataset.x)) 
    209198 
    210199    def reset_data_list(self, no_lines=0): 
     
    215204        x = np.zeros(no_lines) 
    216205        y = np.zeros(no_lines) 
     206        dy = np.zeros(no_lines) 
    217207        dx = np.zeros(no_lines) 
    218         dy = np.zeros(no_lines) 
    219208        self.current_dataset = plottable_1D(x, y, dx, dy) 
    220209 
  • src/sas/sascalc/dataloader/readers/cansas_reader.py

    rae69c690 ra78a02f  
    130130                self.current_datainfo.meta_data[PREPROCESS] = self.processing_instructions 
    131131                self._parse_entry(entry) 
    132                 self.data_cleanup() 
     132                has_error_dx = self.current_dataset.dx is not None 
     133                has_error_dy = self.current_dataset.dy is not None 
     134                self.remove_empty_q_values(has_error_dx=has_error_dx, 
     135                    has_error_dy=has_error_dy) 
     136                self.send_to_output() # Combine datasets with DataInfo 
     137                self.current_datainfo = DataInfo() # Reset DataInfo 
    133138        except FileContentsException as fc_exc: 
    134139            # File doesn't meet schema - try loading with a less strict schema 
     
    149154                    self.load_file_and_schema(xml_file) # Reload strict schema so we can find where error are in file 
    150155                    invalid_xml = self.find_invalid_xml() 
    151                     if invalid_xml != "": 
    152                         invalid_xml = INVALID_XML.format(basename + self.extension) + invalid_xml 
    153                         raise DataReaderException(invalid_xml) # Handled by base class 
     156                    invalid_xml = INVALID_XML.format(basename + self.extension) + invalid_xml 
     157                    raise DataReaderException(invalid_xml) # Handled by base class 
    154158                except FileContentsException as fc_exc: 
    155159                    msg = "CanSAS Reader could not load the file {}".format(xml_file) 
     
    275279                # I and Q points 
    276280                elif tagname == 'I' and isinstance(self.current_dataset, plottable_1D): 
    277                     self.current_dataset.yaxis("Intensity", unit) 
     281                    unit_list = unit.split("|") 
     282                    if len(unit_list) > 1: 
     283                        self.current_dataset.yaxis(unit_list[0].strip(), 
     284                                                   unit_list[1].strip()) 
     285                    else: 
     286                        self.current_dataset.yaxis("Intensity", unit) 
    278287                    self.current_dataset.y = np.append(self.current_dataset.y, data_point) 
    279288                elif tagname == 'Idev' and isinstance(self.current_dataset, plottable_1D): 
    280289                    self.current_dataset.dy = np.append(self.current_dataset.dy, data_point) 
    281290                elif tagname == 'Q': 
    282                     self.current_dataset.xaxis("Q", unit) 
     291                    unit_list = unit.split("|") 
     292                    if len(unit_list) > 1: 
     293                        self.current_dataset.xaxis(unit_list[0].strip(), 
     294                                                   unit_list[1].strip()) 
     295                    else: 
     296                        self.current_dataset.xaxis("Q", unit) 
    283297                    self.current_dataset.x = np.append(self.current_dataset.x, data_point) 
    284298                elif tagname == 'Qdev': 
    285299                    self.current_dataset.dx = np.append(self.current_dataset.dx, data_point) 
    286300                elif tagname == 'dQw': 
    287                    self.current_dataset.dxw = np.append(self.current_dataset.dxw, data_point) 
     301                    if self.current_dataset.dxw is None: 
     302                        self.current_dataset.dxw = np.empty(0) 
     303                    self.current_dataset.dxw = np.append(self.current_dataset.dxw, data_point) 
    288304                elif tagname == 'dQl': 
     305                    if self.current_dataset.dxl is None: 
     306                        self.current_dataset.dxl = np.empty(0) 
    289307                    self.current_dataset.dxl = np.append(self.current_dataset.dxl, data_point) 
    290308                elif tagname == 'Qmean': 
     
    294312                elif tagname == 'Sesans': 
    295313                    self.current_datainfo.isSesans = bool(data_point) 
    296                     self.current_dataset.xaxis(attr.get('x_axis'), 
    297                                                 attr.get('x_unit')) 
    298                     self.current_dataset.yaxis(attr.get('y_axis'), 
    299                                                 attr.get('y_unit')) 
    300314                elif tagname == 'yacceptance': 
    301315                    self.current_datainfo.sample.yacceptance = (data_point, unit) 
     
    498512            for error in self.errors: 
    499513                self.current_datainfo.errors.add(error) 
    500             self.data_cleanup() 
    501             self.sort_one_d_data() 
    502             self.sort_two_d_data() 
    503             self.reset_data_list() 
     514            self.errors.clear() 
     515            self.send_to_output() 
    504516            empty = None 
    505517            return self.output[0], empty 
    506  
    507     def data_cleanup(self): 
    508         """ 
    509         Clean up the data sets and refresh everything 
    510         :return: None 
    511         """ 
    512         has_error_dx = self.current_dataset.dx is not None 
    513         has_error_dxl = self.current_dataset.dxl is not None 
    514         has_error_dxw = self.current_dataset.dxw is not None 
    515         has_error_dy = self.current_dataset.dy is not None 
    516         self.remove_empty_q_values(has_error_dx=has_error_dx, 
    517                                    has_error_dxl=has_error_dxl, 
    518                                    has_error_dxw=has_error_dxw, 
    519                                    has_error_dy=has_error_dy) 
    520         self.send_to_output()  # Combine datasets with DataInfo 
    521         self.current_datainfo = DataInfo()  # Reset DataInfo 
    522518 
    523519    def _is_call_local(self): 
     
    646642                    value_unit = local_unit 
    647643            except KeyError: 
    648                 # Do not throw an error for loading Sesans data in cansas xml 
    649                 # This is a temporary fix. 
    650                 if local_unit != "A" and local_unit != 'pol': 
    651                     err_msg = "CanSAS reader: unexpected " 
    652                     err_msg += "\"{0}\" unit [{1}]; " 
    653                     err_msg = err_msg.format(tagname, local_unit) 
    654                     err_msg += "expecting [{0}]".format(default_unit) 
     644                err_msg = "CanSAS reader: unexpected " 
     645                err_msg += "\"{0}\" unit [{1}]; " 
     646                err_msg = err_msg.format(tagname, local_unit) 
     647                err_msg += "expecting [{0}]".format(default_unit) 
    655648                value_unit = local_unit 
    656649            except: 
     
    682675            di_exists = True 
    683676        if dqw_exists and not dql_exists: 
    684             array_size = self.current_dataset.dxw.size 
    685             self.current_dataset.dxl = np.zeros(array_size) 
     677            array_size = self.current_dataset.dxw.size - 1 
     678            self.current_dataset.dxl = np.append(self.current_dataset.dxl, 
     679                                                 np.zeros([array_size])) 
    686680        elif dql_exists and not dqw_exists: 
    687             array_size = self.current_dataset.dxl.size 
    688             self.current_dataset.dxw = np.zeros(array_size) 
     681            array_size = self.current_dataset.dxl.size - 1 
     682            self.current_dataset.dxw = np.append(self.current_dataset.dxw, 
     683                                                 np.zeros([array_size])) 
    689684        elif not dql_exists and not dqw_exists and not dq_exists: 
    690             array_size = self.current_dataset.x.size 
     685            array_size = self.current_dataset.x.size - 1 
    691686            self.current_dataset.dx = np.append(self.current_dataset.dx, 
    692687                                                np.zeros([array_size])) 
    693688        if not di_exists: 
    694             array_size = self.current_dataset.y.size 
     689            array_size = self.current_dataset.y.size - 1 
    695690            self.current_dataset.dy = np.append(self.current_dataset.dy, 
    696691                                                np.zeros([array_size])) 
     
    862857            node.append(point) 
    863858            self.write_node(point, "Q", datainfo.x[i], 
    864                             {'unit': datainfo.x_unit}) 
     859                            {'unit': datainfo._xaxis + " | " + datainfo._xunit}) 
    865860            if len(datainfo.y) >= i: 
    866861                self.write_node(point, "I", datainfo.y[i], 
    867                                 {'unit': datainfo.y_unit}) 
     862                                {'unit': datainfo._yaxis + " | " + datainfo._yunit}) 
    868863            if datainfo.dy is not None and len(datainfo.dy) > i: 
    869864                self.write_node(point, "Idev", datainfo.dy[i], 
    870                                 {'unit': datainfo.y_unit}) 
     865                                {'unit': datainfo._yaxis + " | " + datainfo._yunit}) 
    871866            if datainfo.dx is not None and len(datainfo.dx) > i: 
    872867                self.write_node(point, "Qdev", datainfo.dx[i], 
    873                                 {'unit': datainfo.x_unit}) 
     868                                {'unit': datainfo._xaxis + " | " + datainfo._xunit}) 
    874869            if datainfo.dxw is not None and len(datainfo.dxw) > i: 
    875870                self.write_node(point, "dQw", datainfo.dxw[i], 
    876                                 {'unit': datainfo.x_unit}) 
     871                                {'unit': datainfo._xaxis + " | " + datainfo._xunit}) 
    877872            if datainfo.dxl is not None and len(datainfo.dxl) > i: 
    878873                self.write_node(point, "dQl", datainfo.dxl[i], 
    879                                 {'unit': datainfo.x_unit}) 
     874                                {'unit': datainfo._xaxis + " | " + datainfo._xunit}) 
    880875        if datainfo.isSesans: 
    881             sesans_attrib = {'x_axis': datainfo._xaxis, 
    882                              'y_axis': datainfo._yaxis, 
    883                              'x_unit': datainfo.x_unit, 
    884                              'y_unit': datainfo.y_unit} 
    885             sesans = self.create_element("Sesans", attrib=sesans_attrib) 
     876            sesans = self.create_element("Sesans") 
    886877            sesans.text = str(datainfo.isSesans) 
    887             entry_node.append(sesans) 
    888             self.write_node(entry_node, "yacceptance", datainfo.sample.yacceptance[0], 
     878            node.append(sesans) 
     879            self.write_node(node, "yacceptance", datainfo.sample.yacceptance[0], 
    889880                             {'unit': datainfo.sample.yacceptance[1]}) 
    890             self.write_node(entry_node, "zacceptance", datainfo.sample.zacceptance[0], 
     881            self.write_node(node, "zacceptance", datainfo.sample.zacceptance[0], 
    891882                             {'unit': datainfo.sample.zacceptance[1]}) 
    892883 
  • src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py

    rc9ecd1b rdcb91cf  
    140140 
    141141            if isinstance(value, h5py.Group): 
    142                 # Set parent class before recursion 
    143142                self.parent_class = class_name 
    144143                parent_list.append(key) 
     
    151150                # Recursion step to access data within the group 
    152151                self.read_children(value, parent_list) 
    153                 # Reset parent class when returning from recursive method 
    154                 self.parent_class = class_name 
    155152                self.add_intermediate() 
    156153                parent_list.remove(key) 
  • src/sas/sascalc/dataloader/readers/xml_reader.py

    rfafe52a rfafe52a  
    134134            first_error = schema.assertValid(self.xmldoc) 
    135135        except etree.DocumentInvalid as err: 
    136             # Suppress errors for <'any'> elements 
    137             if "##other" in str(err): 
    138                 return first_error 
    139136            first_error = str(err) 
    140137        return first_error 
  • src/sas/sascalc/invariant/invariant.py

    rb1f20d1 r7432acb  
    610610        # Data boundaries for fitting 
    611611        qmin = self._data.x[0] 
    612         qmax = self._data.x[int(self._low_extrapolation_npts - 1)] 
     612        qmax = self._data.x[self._low_extrapolation_npts - 1] 
    613613 
    614614        # Extrapolate the low-Q data 
     
    649649        # Data boundaries for fitting 
    650650        x_len = len(self._data.x) - 1 
    651         qmin = self._data.x[int(x_len - (self._high_extrapolation_npts - 1))] 
    652         qmax = self._data.x[int(x_len)] 
     651        qmin = self._data.x[x_len - (self._high_extrapolation_npts - 1)] 
     652        qmax = self._data.x[x_len] 
    653653 
    654654        # fit the data with a model to get the appropriate parameters 
     
    688688        if npts_in is None: 
    689689            npts_in = self._low_extrapolation_npts 
    690         q_end = self._data.x[max(0, int(npts_in - 1))] 
     690        q_end = self._data.x[max(0, npts_in - 1)] 
    691691 
    692692        if q_start >= q_end: 
     
    714714        # Get extrapolation range 
    715715        if npts_in is None: 
    716             npts_in = int(self._high_extrapolation_npts) 
     716            npts_in = self._high_extrapolation_npts 
    717717        _npts = len(self._data.x) 
    718         q_start = self._data.x[min(_npts, int(_npts - npts_in))] 
     718        q_start = self._data.x[min(_npts, _npts - npts_in)] 
    719719 
    720720        if q_start >= q_end: 
  • src/sas/sasgui/guiframe/config.py

    rd908932 ra1b8fee  
    4848'''This work benefited from the use of the SasView application, originally developed under NSF Award DMR-0520547. SasView also contains code developed with funding from the EU Horizon 2020 programme under the SINE2020 project Grant No 654000.''' 
    4949_acknowledgement_citation = \ 
    50 '''M. Doucet et al. SasView Version 4.1.2, Zenodo, 10.5281/zenodo.825675''' 
     50'''M. Doucet et al. SasView Version 4.1, Zenodo, 10.5281/zenodo.438138''' 
    5151 
    5252_acknowledgement =  \ 
  • src/sas/sasgui/guiframe/documentation_window.py

    rd7ee5866 r959eb01  
    7575            logger.error("Could not find Sphinx documentation at %s \ 
    7676            -- has it been built?", file_path) 
    77         #Commenting following 5 lines, so default browser is forced 
    78         #This is due to CDN mathjax discontinuation of service, intenal help 
    79         #browser should be back with qt version 
    80         #Note added by Wojtek Potrzebowski, July 4th 2017 
    81         # elif WX_SUPPORTS_HTML2: 
    82         #     # Complete HTML/CSS support! 
    83         #     self.view = html.WebView.New(self) 
    84         #     self.view.LoadURL(url) 
    85         #     self.Show() 
     77        elif WX_SUPPORTS_HTML2: 
     78            # Complete HTML/CSS support! 
     79            self.view = html.WebView.New(self) 
     80            self.view.LoadURL(url) 
     81            self.Show() 
    8682        else: 
    8783            logger.error("No html2 support, popping up a web browser") 
  • src/sas/sasgui/perspectives/fitting/fitpage.py

    r79e6a33 r79e6a33  
    12431243            wx.PostEvent(self.parent, new_event) 
    12441244            # update list of plugins if new plugin is available 
     1245            custom_model = CUSTOM_MODEL 
    12451246            mod_cat = self.categorybox.GetStringSelection() 
    1246             if mod_cat == CUSTOM_MODEL: 
    1247                 temp_id = self.model.id 
     1247            if mod_cat == custom_model: 
    12481248                temp = self.parent.update_model_list() 
    1249                 for v in self.parent.model_dictionary.values(): 
    1250                     if v.id == temp_id: 
    1251                         self.model = v() 
    1252                         break 
    12531249                if temp: 
    12541250                    self.model_list_box = temp 
  • src/sas/sasgui/perspectives/fitting/fitpanel.py

    rc9ecd1b r6f9abd3  
    9292            # state must be cloned 
    9393            state = page.get_state().clone() 
    94             # data_list only populated with real data 
    95             # Fake object in data from page.get_data() if model is selected 
    96             if len(page.data_list) is not 0 and page.model is not None: 
     94            if data is not None or page.model is not None: 
    9795                new_doc = self._manager.state_reader.write_toXML(data, 
    9896                                                                 state, 
    9997                                                                 batch_state) 
    100                 # Fit #2 through #n are append to first fit 
    10198                if doc is not None and hasattr(doc, "firstChild"): 
    102                     # Only append if properly formed new_doc 
    103                     if new_doc is not None and hasattr(new_doc, "firstChild"): 
    104                         child = new_doc.firstChild.firstChild 
    105                         doc.firstChild.appendChild(child) 
    106                 # First fit defines the main document 
     99                    child = new_doc.firstChild.firstChild 
     100                    doc.firstChild.appendChild(child) 
    107101                else: 
    108102                    doc = new_doc 
     
    401395                temp_data = page.get_data() 
    402396                if temp_data is not None and temp_data.id in data: 
    403                     self.close_page_with_data(temp_data) 
     397                    self.SetSelection(pos) 
     398                    self.on_close_page(event=None) 
     399                    temp = self.GetSelection() 
     400                    self.DeletePage(temp) 
    404401            if self.sim_page is not None: 
    405402                if len(self.sim_page.model_list) == 0: 
     
    407404                    self.SetSelection(pos) 
    408405                    self.on_close_page(event=None) 
    409                     self.DeletePage(pos) 
     406                    temp = self.GetSelection() 
     407                    self.DeletePage(temp) 
    410408                    self.sim_page = None 
    411409                    self.batch_on = False 
  • src/sas/sasgui/perspectives/fitting/models.py

    r632fda9 r632fda9  
    2121from sas.sasgui.guiframe.CategoryInstaller import CategoryInstaller 
    2222from sasmodels.sasview_model import load_custom_model, load_standard_models 
    23 from sas.sasgui.perspectives.fitting.fitpage import CUSTOM_MODEL 
    2423 
    2524logger = logging.getLogger(__name__) 
     
    267266        temp = {} 
    268267        if self.is_changed(): 
    269             temp =  _find_models() 
    270             self.last_time_dir_modified = time.time() 
    271             return temp 
     268            return  _find_models() 
    272269        logger.info("plugin model : %s" % str(temp)) 
    273270        return temp 
     
    326323        if os.path.isdir(plugin_dir): 
    327324            temp = os.path.getmtime(plugin_dir) 
    328             if  self.last_time_dir_modified < temp: 
     325            if  self.last_time_dir_modified != temp: 
    329326                is_modified = True 
    330327                self.last_time_dir_modified = temp 
     
    337334        new models were added else return empty dictionary 
    338335        """ 
    339         self.plugins = [] 
    340336        new_plugins = self.findModels() 
    341         if new_plugins: 
    342             for name, plug in  new_plugins.items(): 
    343                 self.stored_plugins[name] = plug 
    344                 self.plugins.append(plug) 
    345                 self.model_dictionary[name] = plug 
    346             self.model_combobox.set_list(CUSTOM_MODEL, self.plugins) 
     337        if len(new_plugins) > 0: 
     338            for name, plug in  new_plugins.iteritems(): 
     339                if name not in self.stored_plugins.keys(): 
     340                    self.stored_plugins[name] = plug 
     341                    self.plugins.append(plug) 
     342                    self.model_dictionary[name] = plug 
     343            self.model_combobox.set_list("Plugin Models", self.plugins) 
    347344            return self.model_combobox.get_list() 
    348345        else: 
  • src/sas/sasgui/perspectives/fitting/pagestate.py

    rda9b239 r959eb01  
    617617            value = "" 
    618618            content = line.split(":") 
    619             if line == '' or len(content) == 1: 
    620                 continue 
    621619            name = content[0] 
    622620            try: 
  • test/sasdataloader/test/utest_abs_reader.py

    rae69c690 ra78a02f  
    333333        self.assertEqual(self.data.x[1], 0.03) 
    334334        self.assertAlmostEquals(self.data.y[1], 1001.0) 
     335        self.assertEqual(self.data.dx[0], 0.0) 
    335336        self.assertEqual(self.data.dxl[1], 0.005) 
    336337        self.assertEqual(self.data.dxw[1], 0.001) 
Note: See TracChangeset for help on using the changeset viewer.