Changes in / [920928f:48153283] in sasview


Ignore:
Files:
23 added
2 deleted
19 edited

Legend:

Unmodified
Added
Removed
  • build_tools/conda/bumps/meta.yaml

    rf479ac3 rb75079b  
    1 about: {home: 'http://www.reflectometry.org/danse/software.html', license: UNKNOWN, 
    2   summary: Data fitting with bayesian uncertainty analysis} 
    3 build: 
    4   entry_points: [] 
    5   features: [] 
    6   string: '' 
    7   track_features: [] 
    8 package: {name: bumps, version: 0.7.5.3} 
     1package: 
     2  name: bumps 
     3  version: !!str 0.7.5.4 
     4 
     5source: 
     6  fn: bumps-0.7.5.4.tar.gz 
     7  url: https://pypi.python.org/packages/source/b/bumps/bumps-0.7.5.4.tar.gz 
     8  md5: a47c035fbb18afa5ca53067506a5ff1c 
     9#  patches: 
     10   # List any patch files here 
     11   # - fix.patch 
     12 
     13# build: 
     14  #preserve_egg_dir: True 
     15  #entry_points: 
     16    # Put any entry points (scripts to be generated automatically) here. The 
     17    # syntax is module:function.  For example 
     18    # 
     19    # - bumps = bumps:main 
     20    # 
     21    # Would create an entry point called bumps that calls bumps.main() 
     22 
     23 
     24  # If this is a new build for the same version, increment the build 
     25  # number. If you do not include this key, it defaults to 0. 
     26  # number: 1 
     27 
    928requirements: 
    10   build: [python, setuptools, six] 
    11   conflicts: [] 
    12   run: [python, six] 
    13 source: 
    14   fn: bumps-0.7.5.3.tar.gz 
    15   git_rev: '' 
    16   md5: f17b41412c3c8ad6432a42e42cb926d5 
    17   patches: [] 
    18   path: '' 
    19   svn_rev: '' 
    20   url: https://pypi.python.org/packages/source/b/bumps/bumps-0.7.5.3.tar.gz 
     29  build: 
     30    - python 
     31    - setuptools 
     32    - six 
     33 
     34  run: 
     35    - python 
     36    - six 
     37 
    2138test: 
    22   commands: [] 
    23   files: [] 
    24   imports: [bumps, bumps.dream, bumps.gui, bumps.gui.resources, bumps.mystic, bumps.mystic.examples, 
    25     bumps.mystic.optimizer] 
    26   requires: [] 
     39  # Python imports 
     40  imports: 
     41    - bumps 
     42    - bumps.dream 
     43    - bumps.gui 
     44    - bumps.gui.resources 
     45    - bumps.mystic 
     46    - bumps.mystic.examples 
     47    - bumps.mystic.optimizer 
     48 
     49  #commands: 
     50    # You can put test commands to be run here.  Use this to test that the 
     51    # entry points work. 
     52 
     53 
     54  # You can also put a file called run_test.py in the recipe that will be run 
     55  # at test time. 
     56 
     57  requires: 
     58   - numpy 
     59   - scipy 
     60   - matplotlib 
     61 
     62about: 
     63  home: http://www.reflectometry.org/danse/software.html 
     64  license: UNKNOWN 
     65  summary: 'Data fitting with bayesian uncertainty analysis' 
     66 
     67# See 
     68# http://docs.continuum.io/conda/build.html for 
     69# more information about meta.yaml 
  • build_tools/conda/periodictable/meta.yaml

    rf479ac3 r55bde35  
    1 about: {home: 'http://www.reflectometry.org/danse/elements.html', license: public 
    2     domain, summary: Extensible periodic table of the elements} 
    3 build: 
    4   entry_points: [] 
    5   features: [] 
    6   string: '' 
    7   track_features: [] 
    8 package: {name: periodictable, version: 1.4.1} 
    9 requirements: 
    10   build: [python, setuptools, pyparsing, numpy] 
    11   conflicts: [] 
    12   run: [python, pyparsing, numpy] 
     1package: 
     2  name: periodictable 
     3  version: !!str 1.4.1 
     4 
    135source: 
    146  fn: periodictable-1.4.1.tar.gz 
    15   git_rev: '' 
     7  url: https://pypi.python.org/packages/source/p/periodictable/periodictable-1.4.1.tar.gz 
    168  md5: 7246b63cc0b6b1be6e86b6616f9e866e 
    17   patches: [] 
    18   path: '' 
    19   svn_rev: '' 
    20   url: https://pypi.python.org/packages/source/p/periodictable/periodictable-1.4.1.tar.gz 
     9#  patches: 
     10   # List any patch files here 
     11   # - fix.patch 
     12 
     13# build: 
     14  #preserve_egg_dir: True 
     15  #entry_points: 
     16    # Put any entry points (scripts to be generated automatically) here. The 
     17    # syntax is module:function.  For example 
     18    # 
     19    # - periodictable = periodictable:main 
     20    # 
     21    # Would create an entry point called periodictable that calls periodictable.main() 
     22 
     23 
     24  # If this is a new build for the same version, increment the build 
     25  # number. If you do not include this key, it defaults to 0. 
     26  # number: 1 
     27 
     28requirements: 
     29  build: 
     30    - python 
     31    - setuptools 
     32    - pyparsing 
     33    - numpy 
     34 
     35  run: 
     36    - python 
     37    - pyparsing 
     38    - numpy 
     39 
    2140test: 
    22   commands: [] 
    23   files: [] 
    24   imports: [periodictable] 
    25   requires: [] 
     41  # Python imports 
     42  imports: 
     43    - periodictable 
     44 
     45  #commands: 
     46    # You can put test commands to be run here.  Use this to test that the 
     47    # entry points work. 
     48 
     49 
     50  # You can also put a file called run_test.py in the recipe that will be run 
     51  # at test time. 
     52 
     53  # requires: 
     54    # Put any additional test requirements here.  For example 
     55    # - nose 
     56 
     57about: 
     58  home: http://www.reflectometry.org/danse/elements.html 
     59  license: public domain 
     60  summary: 'Extensible periodic table of the elements' 
     61 
     62# See 
     63# http://docs.continuum.io/conda/build.html for 
     64# more information about meta.yaml 
  • build_tools/conda/unittest-xml-reporting/meta.yaml

    rf479ac3 r55bde35  
    1 about: {home: 'http://github.com/xmlrunner/unittest-xml-reporting/tree/master/', license: BSD 
    2     License, summary: unittest-based test runner with Ant/JUnit like XML reporting.} 
    3 build: 
    4   entry_points: [] 
    5   features: [] 
    6   string: '' 
    7   track_features: [] 
    8 package: {name: unittest-xml-reporting, version: 1.10.0} 
    9 requirements: 
    10   build: [python, setuptools, six >=1.4.0] 
    11   conflicts: [] 
    12   run: [python, six >=1.4.0] 
     1package: 
     2  name: unittest-xml-reporting 
     3  version: !!str 1.10.0 
     4 
    135source: 
    146  fn: unittest-xml-reporting-1.10.0.tar.gz 
    15   git_rev: '' 
     7  url: https://pypi.python.org/packages/source/u/unittest-xml-reporting/unittest-xml-reporting-1.10.0.tar.gz 
    168  md5: f0d04be2b9bff5b744677b576c326620 
    17   patches: [] 
    18   path: '' 
    19   svn_rev: '' 
    20   url: https://pypi.python.org/packages/source/u/unittest-xml-reporting/unittest-xml-reporting-1.10.0.tar.gz 
     9#  patches: 
     10   # List any patch files here 
     11   # - fix.patch 
     12 
     13# build: 
     14  #preserve_egg_dir: True 
     15  #entry_points: 
     16    # Put any entry points (scripts to be generated automatically) here. The 
     17    # syntax is module:function.  For example 
     18    # 
     19    # - unittest-xml-reporting = unittest-xml-reporting:main 
     20    # 
     21    # Would create an entry point called unittest-xml-reporting that calls unittest-xml-reporting.main() 
     22 
     23 
     24  # If this is a new build for the same version, increment the build 
     25  # number. If you do not include this key, it defaults to 0. 
     26  # number: 1 
     27 
     28requirements: 
     29  build: 
     30    - python 
     31    - setuptools 
     32    - six >=1.4.0 
     33 
     34  run: 
     35    - python 
     36    - six >=1.4.0 
     37 
    2138test: 
    22   commands: [] 
    23   files: [] 
    24   imports: [xmlrunner, xmlrunner.extra, xmlrunner.tests] 
    25   requires: [] 
     39  # Python imports 
     40  imports: 
     41    - xmlrunner 
     42    - xmlrunner.extra 
     43    - xmlrunner.tests 
     44 
     45  #commands: 
     46    # You can put test commands to be run here.  Use this to test that the 
     47    # entry points work. 
     48 
     49 
     50  # You can also put a file called run_test.py in the recipe that will be run 
     51  # at test time. 
     52 
     53  # requires: 
     54    # Put any additional test requirements here.  For example 
     55    # - nose 
     56 
     57about: 
     58  home: http://github.com/xmlrunner/unittest-xml-reporting/tree/master/ 
     59  license:  BSD License 
     60  summary: 'unittest-based test runner with Ant/JUnit like XML reporting.' 
     61 
     62# See 
     63# http://docs.continuum.io/conda/build.html for 
     64# more information about meta.yaml 
  • docs/sphinx-docs/build_sphinx.py

    rf620870 r296f290  
    1010import fnmatch 
    1111import shutil 
     12import imp 
    1213 
    1314from distutils.dir_util import copy_tree 
     
    1718 
    1819CURRENT_SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) 
     20 
     21run = imp.load_source('run', os.path.join(CURRENT_SCRIPT_DIR, '..', '..', 'run.py')) 
     22run.prepare() 
    1923 
    2024SASVIEW_SRC = os.path.join(CURRENT_SCRIPT_DIR, "..", "..", "src") 
     
    108112    build() 
    109113         
    110 print "=== Done ===" 
     114    print "=== Done ===" 
  • sasview/setup_exe.py

    r3a39c2e r4172557  
    307307# 
    308308packages = [ 
    309     'matplotlib', 'scipy', 'pytz', 'encodings', 'comtypes', 
     309    'matplotlib', 'scipy', 'encodings', 'comtypes', 
    310310    'win32com', 'ho.pisa', 'bumps', 
    311311    ] 
     
    326326 
    327327# Exclude packages that are not needed but are often found on build systems 
    328 excludes = ['Tkinter', 'PyQt4', '_ssl', '_tkagg', 'sip'] 
     328excludes = ['Tkinter', 'PyQt4', '_ssl', '_tkagg', 'sip', 'pytz'] 
    329329 
    330330 
  • setup.py

    ra6d2e3b rd8c4019  
    88from distutils.command.build_ext import build_ext 
    99from distutils.core import Command 
    10  
    11 sys.path.append("docs/sphinx-docs") 
    12 import build_sphinx 
    1310 
    1411try: 
     
    158155        self.cwd = os.getcwd() 
    159156 
    160     def run(self):         
     157    def run(self): 
     158        sys.path.append("docs/sphinx-docs") 
     159        import build_sphinx 
     160 
    161161        build_sphinx.clean() 
    162162        build_sphinx.retrieve_user_docs() 
  • src/sas/data_util/nxsunit.py

    r79492222 rb3efb7d  
    128128    temperature = _build_metric_units('kelvin','K') 
    129129    temperature.update(_build_metric_units('Kelvin','K')) 
    130  
     130    temperature.update(_build_metric_units('Celcius', 'C')) 
     131    temperature.update(_build_metric_units('celcius', 'C')) 
     132     
    131133    charge = _build_metric_units('coulomb','C') 
    132134    charge.update({'microAmp*hour':0.0036}) 
     
    146148    """ 
    147149    Unit converter for NeXus style units. 
    148  
    149150    """ 
    150151    # Define the units, using both American and European spelling. 
  • src/sas/dataloader/data_info.py

    r79492222 rb3efb7d  
    338338    ## Transmission [float] [fraction] 
    339339    transmission = None 
    340     ## Temperature [float] [C] 
     340    ## Temperature [float] [No Default] 
    341341    temperature = None 
    342     temperature_unit = 'C' 
     342    temperature_unit = None 
    343343    ## Position [Vector] [mm] 
    344344    position = None 
  • src/sas/dataloader/readers/associations.py

    rfd5ac0d r5dfdfa7  
    1717import sys 
    1818import logging 
    19 from lxml import etree 
    20 # Py2exe compatibility: import _elementpath to ensure that py2exe finds it 
    21 from lxml import _elementpath 
     19import json 
    2220 
    23 ## Format version for the XML settings file 
    24 VERSION = 'sasloader/1.0' 
     21FILE_NAME = 'defaults.json' 
    2522 
    26  
    27 def read_associations(loader, settings='defaults.xml'): 
     23def read_associations(loader, settings=FILE_NAME): 
    2824    """ 
    2925    Read the specified settings file to associate 
     
    3127     
    3228    :param loader: Loader object 
    33     :param settings: path to the XML settings file [string] 
     29    :param settings: path to the json settings file [string] 
    3430    """ 
    3531    reader_dir = os.path.dirname(__file__) 
     
    4743        path = "./%s" % settings 
    4844    if os.path.isfile(path): 
    49         tree = etree.parse(path, parser=etree.ETCompatXMLParser()) 
    50          
    51         # Check the format version number 
    52         # Specifying the namespace will take care of the file format version 
    53         root = tree.getroot() 
     45        with open(path) as fh: 
     46            json_tree = json.load(fh) 
    5447         
    5548        # Read in the file extension associations 
    56         entry_list = root.xpath('/ns:SasLoader/ns:FileType', 
    57                                  namespaces={'ns': VERSION}) 
     49        entry_list = json_tree['SasLoader']['FileType'] 
    5850 
    5951        # For each FileType entry, get the associated reader and extension 
    6052        for entry in entry_list: 
    61             reader = entry.get('reader') 
    62             ext = entry.get('extension') 
     53            reader = entry['-reader'] 
     54            ext = entry['-extension'] 
    6355             
    6456            if reader is not None and ext is not None: 
  • src/sas/dataloader/readers/cansas_reader.py

    r79492222 rb3efb7d  
    307307        if 'unit' in attr and new_current_level.get('unit') is not None: 
    308308            try: 
     309                local_unit = attr['unit'] 
    309310                if isinstance(node_value, float) is False: 
    310311                    exec("node_value = float({0})".format(node_value)) 
     
    312313                unitname = new_current_level.get("unit") 
    313314                exec "default_unit = data1d.{0}".format(unitname) 
    314                 local_unit = attr['unit'] 
    315                 if local_unit.lower() != default_unit.lower() and \ 
    316                     local_unit is not None and local_unit.lower() != "none" \ 
    317                         and default_unit is not None: 
     315                if local_unit is not None and default_unit is not None and \ 
     316                        local_unit.lower() != default_unit.lower() \ 
     317                        and local_unit.lower() != "none": 
    318318                    if HAS_CONVERTER == True: 
    319                         try: 
    320                             ## Check local units - bad units raise KeyError 
    321                             Converter(local_unit) 
    322                             data_conv_q = Converter(attr['unit']) 
    323                             value_unit = default_unit 
    324                             i_string = "node_value = data_conv_q" 
    325                             i_string += "(node_value, units=data1d.{0})" 
    326                             exec i_string.format(unitname) 
    327                         except KeyError: 
    328                             err_msg = "CanSAS reader: could not convert " 
    329                             err_msg += "{0} unit {1}; " 
    330                             err_msg = err_msg.format(tagname, local_unit) 
    331                             intermediate = "err_msg += " + \ 
    332                                         "\"expecting [{1}]  {2}\"" + \ 
    333                                         ".format(data1d.{0}, " + \ 
    334                                         "sys.exc_info()[1])" 
    335                             exec intermediate.format(unitname, "{0}", "{1}") 
    336                             self.errors.append(err_msg) 
    337                             raise ValueError(err_msg) 
    338                         except: 
    339                             err_msg = \ 
    340                                 "CanSAS reader: could not convert the units" 
    341                             self.errors.append(err_msg) 
    342                             return 
     319                        ## Check local units - bad units raise KeyError 
     320                        data_conv_q = Converter(local_unit) 
     321                        value_unit = default_unit 
     322                        i_string = "node_value = data_conv_q" 
     323                        i_string += "(node_value, units=data1d.{0})" 
     324                        exec i_string.format(unitname) 
    343325                    else: 
    344326                        value_unit = local_unit 
    345                         err_msg = "CanSAS reader: unrecognized %s unit [%s];"\ 
    346                         % (node_value, default_unit) 
    347                         err_msg += " expecting [%s]" % local_unit 
     327                        err_msg = "Unit converter is not available.\n" 
    348328                        self.errors.append(err_msg) 
    349                         raise ValueError, err_msg 
    350329                else: 
    351330                    value_unit = local_unit 
     331            except KeyError: 
     332                err_msg = "CanSAS reader: unexpected " 
     333                err_msg += "\"{0}\" unit [{1}]; " 
     334                err_msg = err_msg.format(tagname, local_unit) 
     335                intermediate = "err_msg += " + \ 
     336                            "\"expecting [{1}]\"" + \ 
     337                            ".format(data1d.{0})" 
     338                exec intermediate.format(unitname, "{0}", "{1}") 
     339                self.errors.append(err_msg) 
     340                value_unit = local_unit 
    352341            except: 
    353                 err_msg = "CanSAS reader: could not convert " 
    354                 err_msg += "Q unit [%s]; " % attr['unit'] 
    355                 intermediate = "err_msg += \"expecting [%s]\n  %s\" % " + \ 
    356                             "(data1d.{0}, sys.exc_info()[1])" 
    357                 exec intermediate.format(unitname) 
     342                print sys.exc_info() 
     343                err_msg = "CanSAS reader: unknown error converting " 
     344                err_msg += "\"{0}\" unit [{1}]" 
     345                err_msg = err_msg.format(tagname, local_unit) 
    358346                self.errors.append(err_msg) 
    359                 raise ValueError, err_msg 
     347                value_unit = local_unit 
    360348        elif 'unit' in attr: 
    361349            value_unit = attr['unit'] 
     
    488476                                                        data1d, tagname) 
    489477                    cansas_attrib = \ 
    490                     cs_values.current_level.get("attributes").get(key) 
     478                        cs_values.current_level.get("attributes").get(key) 
    491479                    attrib_variable = cansas_attrib.get("variable") 
    492480                    if key == 'unit' and unit != '': 
  • src/sas/guiframe/gui_manager.py

    rb9a5f0e r9bbb627  
    2424import logging 
    2525import httplib 
     26import webbrowser 
     27 
    2628 
    2729from sas.guiframe.events import EVT_CATEGORY 
     
    13251327    def _add_help_menu(self): 
    13261328        """ 
    1327         add help menu 
     1329        add help menu to menu bar.  Includes welcome page, about page, 
     1330        tutorial PDF and documentation pages.  
    13281331        """ 
    13291332        # Help menu 
     
    13361339                id = wx.NewId() 
    13371340                self._help_menu.Append(id, '&Welcome', '') 
    1338                 self._help_menu.AppendSeparator() 
    13391341                wx.EVT_MENU(self, id, self.show_welcome_panel) 
    13401342 
    1341         # Look for help item in plug-ins  
    1342         for item in self.plugins: 
    1343             if hasattr(item, "help"): 
    1344                 id = wx.NewId() 
    1345                 self._help_menu.Append(id,'&%s Help' % item.sub_menu, '') 
    1346                 wx.EVT_MENU(self, id, item.help) 
    1347  
    1348         # Only show new Sphinx docs link if version of wx supports displaying 
    1349         # it correctly. 
    1350         show_sphinx_docs = float(wx.__version__[:3]) >= 2.9 
    1351         if show_sphinx_docs: 
    1352             self._help_menu.AppendSeparator() 
    1353             id = wx.NewId() 
    1354             self._help_menu.Append(id, '&Sphinx Documentation', '') 
    1355             wx.EVT_MENU(self, id, self._onSphinxDocs) 
     1343        self._help_menu.AppendSeparator() 
     1344        id = wx.NewId() 
     1345        self._help_menu.Append(id, '&Documentation', '') 
     1346        wx.EVT_MENU(self, id, self._onSphinxDocs) 
    13561347 
    13571348        if config._do_tutorial and (IS_WIN or sys.platform =='darwin'): 
     
    21622153    def _onSphinxDocs(self, evt): 
    21632154        """ 
    2164         Pop up a Sphinx Documentation dialog. 
     2155        Bring up Sphinx Documentation.  If Wx 2.9 or higher is installed  
     2156        with proper HTML support then Pop up a Sphinx Documentation dialog 
     2157        locally.  If not pop up a new tab in the default system browser  
     2158        calling the documentation website. 
    21652159         
    21662160        :param evt: menu event 
     
    21682162        # Running SasView "in-place" using run.py means the docs will be in a 
    21692163        # different place than they would otherwise. 
    2170         SPHINX_DOC_ENV = "SASVIEW_DOC_PATH" 
    2171         if SPHINX_DOC_ENV in os.environ: 
    2172             docs_path = os.path.join(os.environ[SPHINX_DOC_ENV], "index.html") 
     2164 
     2165        show_sphinx_docs = float(wx.__version__[:3]) >= 2.9 
     2166        if show_sphinx_docs: 
     2167            SPHINX_DOC_ENV = "SASVIEW_DOC_PATH" 
     2168            if SPHINX_DOC_ENV in os.environ: 
     2169                docs_path = os.path.join(os.environ[SPHINX_DOC_ENV], "index.html") 
     2170            else: 
     2171                docs_path = os.path.join(PATH_APP, "..", "..", "doc", "index.html") 
     2172 
     2173            if os.path.exists(docs_path): 
     2174                from documentation_window import DocumentationWindow 
     2175 
     2176                sphinx_doc_viewer = DocumentationWindow(None, -1, docs_path) 
     2177                sphinx_doc_viewer.Show() 
     2178            else: 
     2179                logging.error("Could not find Sphinx documentation at '%' -- has it been built?" % docs_path) 
    21732180        else: 
    2174             docs_path = os.path.join(PATH_APP, "..", "..", "doc", "index.html") 
    2175  
    2176         if os.path.exists(docs_path): 
    2177             from documentation_window import DocumentationWindow 
    2178  
    2179             sphinx_doc_viewer = DocumentationWindow(None, -1, docs_path) 
    2180             sphinx_doc_viewer.Show() 
    2181         else: 
    2182             logging.error("Could not find Sphinx documentation at '%' -- has it been built?" % docs_path) 
     2181            #For red hat and maybe others who do not have Wx 3.0 
     2182            #just send to webpage of documentation 
     2183            webbrowser.open_new_tab('http://www.sasview.org/sasview') 
    21832184 
    21842185    def set_manager(self, manager): 
  • src/sas/guiframe/gui_statusbar.py

    r79492222 rb3efb7d  
    315315        if msg == "error": 
    316316            e_msg = "Error(s) Occurred:\n" 
    317             e_msg += event.status 
     317            e_msg += "\t" + event.status + "\n\n" 
     318            e_msg += "Further information might be available in " 
     319            e_msg += "the Console log (bottom right corner)." 
    318320            wx.MessageBox(e_msg, style=wx.ICON_ERROR) 
    319321 
  • src/sas/guiframe/local_perspectives/data_loader/data_loader.py

    r7a04dbb rb3efb7d  
    171171                                  file) for file in os.listdir(path)] 
    172172    
     173    def _process_data_and_errors(self, item, p_file, output, message): 
     174        """ 
     175        Check to see if data set loaded with any errors. If so, append to 
     176            error message to be sure user knows the issue. 
     177        """ 
     178        data_error = False 
     179        for error_data in item.errors: 
     180            data_error = True 
     181            message += "\tError: {0}\n".format(error_data) 
     182        data = self.parent.create_gui_data(item, p_file) 
     183        output[data.id] = data 
     184        return output, message, data_error 
     185    
    173186    def get_data(self, path, format=None): 
    174187        """ 
     
    178191        output = {} 
    179192        any_error = False 
     193        data_error = False 
    180194        error_message = "" 
    181195        for p_file in path: 
    182196            info = "info" 
    183197            basename  = os.path.basename(p_file) 
    184             root, extension = os.path.splitext(basename) 
     198            _, extension = os.path.splitext(basename) 
    185199            if extension.lower() in EXTENSIONS: 
    186200                any_error = True 
     
    194208         
    195209            try: 
     210                message = "Loading Data... " + str(p_file) + "\n" 
     211                self.load_update(output=output, message=message, info=info) 
    196212                temp =  self.loader.load(p_file, format) 
    197213                if temp.__class__.__name__ == "list": 
    198214                    for item in temp: 
    199                         data = self.parent.create_gui_data(item, p_file) 
    200                         output[data.id] = data 
     215                        output, error_message, data_error = \ 
     216                            self._process_data_and_errors(item,  
     217                                                          p_file,  
     218                                                          output,  
     219                                                          error_message) 
    201220                else: 
    202                     data = self.parent.create_gui_data(temp, p_file) 
    203                     output[data.id] = data 
    204                 message = "Loading Data..." + str(p_file) + "\n" 
    205                 self.load_update(output=output, message=message, info=info) 
     221                    output, error_message, data_error = \ 
     222                            self._process_data_and_errors(temp,  
     223                                                          p_file,  
     224                                                          output,  
     225                                                          error_message) 
    206226            except: 
    207227                any_error = True 
    208                 if error_message == "": 
    209                      error = "Error: " + str(sys.exc_value) + "\n" 
    210                      error += "while loading Data: \n%s\n" % str(p_file) 
    211                      error_message = "The data file you selected could not be loaded.\n" 
    212                      error_message += "Make sure the content of your file" 
    213                      error_message += " is properly formatted.\n\n" 
    214                      error_message += "When contacting the DANSE team, mention the" 
    215                      error_message += " following:\n%s" % str(error) 
    216                 else: 
    217                      error_message += "%s\n"% str(p_file) 
    218                 info = "error" 
    219                 self.load_update(output=output, message=error_message,  
     228        if any_error or error_message != "": 
     229            if error_message == "": 
     230                error = "Error: " + str(sys.exc_value) + "\n" 
     231                error += "while loading Data: \n%s\n" % str(p_file) 
     232                error_message = "The data file you selected could not be loaded.\n" 
     233                error_message += "Make sure the content of your file" 
     234                error_message += " is properly formatted.\n\n" 
     235                error_message += "When contacting the DANSE team, mention the" 
     236                error_message += " following:\n%s" % str(error) 
     237            elif data_error: 
     238                base_message = "Errors occurred while loading {0}\n".format(p_file) 
     239                base_message += "The data file loaded but with errors.\n" 
     240                error_message = base_message + error_message 
     241            else: 
     242                error_message += "%s\n"% str(p_file) 
     243            info = "error" 
     244            self.load_update(output=output, message=error_message,  
    220245                                  info=info) 
    221246                 
    222         message = "Loading Data Complete! " 
     247        else: 
     248            message = "Loading Data Complete! " 
    223249        message += log_msg 
    224         if error_message != "": 
    225             info = 'error' 
    226250        self.load_complete(output=output, error_message=error_message, 
    227251                       message=message, path=path, info=info) 
  • src/sas/models/c_extension/python_wrapper/modelTemplate.txt

    rfd5ac0d r8836849  
    2626from sas.models.BaseComponent import BaseComponent 
    2727from sas.models.sas_extension.c_models import [CPYTHONCLASS] 
     28from numpy import inf 
    2829 
    2930def create_[PYTHONCLASS](): 
  • src/sas/models/include/cylinder.h

    r79492222 r8836849  
    3434 
    3535  /// Radius of the cylinder [A] 
    36   //  [DEFAULT]=radius=20.0 [A] 
     36  //  [DEFAULT]=radius=20.0 [A] 0.0 inf 
    3737  Parameter radius; 
    3838 
    3939  /// Length of the cylinder [A] 
    40   //  [DEFAULT]=length=400.0 [A] 
     40  //  [DEFAULT]=length=400.0 [A] 0.0 inf 
    4141  Parameter length; 
    4242 
  • src/sas/perspectives/fitting/fitpage.py

    rb9a5f0e r22ae2f7  
    14921492        after fitting 
    14931493        """ 
     1494 
    14941495        if self.is_mac: 
    14951496            return 
     
    15001501            for item in self.parameters: 
    15011502                if item[0].IsShown(): 
    1502                     #Skip t ifhe angle parameters if 1D data 
     1503                    #Skip the angle parameters if 1D data 
    15031504                    if self.data.__class__.__name__ != "Data2D" and \ 
    15041505                            not self.enable2D: 
     
    15191520            for item in self.fittable_param: 
    15201521                if item[0].IsShown(): 
    1521                     #Skip t ifhe angle parameters if 1D data 
     1522                    #Skip the angle parameters if 1D data 
    15221523                    if self.data.__class__.__name__ != "Data2D" and \ 
    15231524                            not self.enable2D: 
     
    20762077    
    20772078        """ 
     2079         
    20782080        # make sure stop button to fit button all the time 
    20792081        self._on_fit_complete() 
     
    21122114        i = 0 
    21132115        #Set the panel when fit result are list 
     2116 
    21142117        for item in self.param_toFit: 
    21152118            if len(item) > 5 and item != None: 
     2119 
    21162120                if item[0].IsShown(): 
    21172121                    ## reset error value to initial state 
     
    21442148                                    item[3].Show(True) 
    21452149                                    item[4].Show(True) 
     2150                                    item[4].SetForegroundColour(wx.BLACK) 
     2151                                item[4].SetValue(val_err) 
     2152                                has_error = True 
     2153                            else: 
     2154                                val_err = 'NaN' 
     2155                                if not self.is_mac: 
     2156                                    item[3].Show(True) 
     2157                                    item[4].Show(True) 
     2158                                    item[4].SetForegroundColour(wx.RED) 
    21462159                                item[4].SetValue(val_err) 
    21472160                                has_error = True 
     
    28312844            
    28322845        keys = self.model.getParamList() 
    2833         #list of dispersion paramaters 
     2846         
     2847        #list of dispersion parameters 
    28342848        self.disp_list = self.model.getDispParamList() 
    28352849 
     
    29252939        CHECK_STATE = self.cb1.GetValue() 
    29262940        for item in keys: 
     2941             
    29272942            if not item in self.disp_list and not item in \ 
    29282943                    self.model.orientation_params: 
     
    29983013                    if not self.is_mac: 
    29993014                        ctl2.Hide() 
    3000                      
     3015 
    30013016                    ix += 1 
    30023017                    ctl3 = self.ModelTextCtrl(self, -1, 
     
    30043019                                              style=wx.TE_PROCESS_ENTER, 
    30053020                                text_enter_callback=self._onparamRangeEnter) 
    3006           
     3021                    min_bound = self.model.details[item][1] 
     3022                    if min_bound is not None: 
     3023                        ctl3.SetValue(format_number(min_bound, True)) 
     3024 
    30073025                    sizer.Add(ctl3, (iy, ix), (1, 1), 
    30083026                              wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     
    30133031                                              style=wx.TE_PROCESS_ENTER, 
    30143032                                text_enter_callback=self._onparamRangeEnter) 
     3033                    max_bound = self.model.details[item][2] 
     3034                    if max_bound is not None: 
     3035                        ctl4.SetValue(format_number(max_bound, True)) 
    30153036                    sizer.Add(ctl4, (iy, ix), (1, 1), 
    30163037                              wx.EXPAND | wx.FIXED_MINSIZE, 0) 
  • src/sas/perspectives/fitting/pagestate.py

    rb9a5f0e rd06ae30  
    472472        Get the values (strings) from __str__ for report 
    473473        """ 
    474         # Dictionary of teh report strings 
     474        # Dictionary of the report strings 
    475475        repo_time = "" 
    476476        model_name = "" 
     
    508508            if name == "value": 
    509509                param_string += value + ',' 
     510            if name == "selected": 
     511                if value == u' False': 
     512                    fixed_parameter = True 
     513                else: 
     514                    fixed_parameter = False 
    510515            if name == "error value": 
    511                 param_string += value + ',' 
     516                if fixed_parameter: 
     517                    param_string += '(fixed),' 
     518                else: 
     519                    param_string += value + ',' 
    512520            if name == "parameter unit": 
    513521                param_string += value + ':' 
  • src/sas/perspectives/fitting/report_dialog.py

    r79492222 rd06ae30  
    11""" 
    22Dialog report panel to show and summarize the results of  
    3 the invariant calculation. 
     3the fitting calculation. 
    44""" 
    55################################################################################ 
  • test/sasdataloader/test/utest_abs_reader.py

    r35ec279 rb3efb7d  
    345345        self.assertEqual(self.data.filename, filename) 
    346346        # The followed should not have been loaded 
    347         self.assertEqual(self.data.sample.thickness, None) 
     347        self.assertEqual(self.data.sample.thickness, 0.00103) 
    348348        # This one should 
    349349        self.assertEqual(self.data.sample.transmission, 0.327) 
    350350         
    351351        self.assertEqual(self.data.meta_data['loader'], "CanSAS 1D") 
    352         self.assertEqual(len(self.data.errors), 1) 
     352        print self.data.errors 
     353        self.assertEqual(len(self.data.errors), 2) 
    353354         
    354355         
Note: See TracChangeset for help on using the changeset viewer.