Changeset c222c27 in sasview for src/sas/sasgui


Ignore:
Timestamp:
Nov 15, 2018 2:09:18 PM (6 years ago)
Author:
Jeff Krzywon <jkrzywon@…>
Branches:
master, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249
Children:
9220e89c
Parents:
a165bee (diff), f560e23 (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 ticket-1111

Location:
src/sas/sasgui
Files:
3 edited

Legend:

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

    r388aefb r8e109f9  
    88''' 
    99 
     10import json 
     11import platform 
    1012import logging 
    1113import os 
    1214import sys 
     15 
    1316import wx 
     17 
     18try: 
     19    import pyopencl as cl 
     20except ImportError: 
     21    cl = None 
     22 
    1423import sasmodels 
     24import sasmodels.model_test 
     25import sasmodels.kernelcl 
     26 
    1527from sas.sasgui.guiframe.documentation_window import DocumentationWindow 
    1628 
     
    169181        clinfo = [] 
    170182        platforms = [] 
    171         try: 
    172             import pyopencl as cl 
    173             platforms = cl.get_platforms() 
    174         except ImportError: 
     183 
     184        if cl is None: 
    175185            logger.warn("Unable to import the pyopencl package.  It may not " 
    176186                        "have been installed.  If you wish to use OpenCL, try " 
    177187                        "running pip install --user pyopencl") 
    178         except cl.LogicError as err: 
    179             logger.warn("Unable to fetch the OpenCL platforms.  This likely " 
    180                         "means that the opencl drivers for your system are " 
    181                         "not installed.") 
    182             logger.warn(err) 
     188        else: 
     189            try: 
     190                platforms = cl.get_platforms() 
     191            except cl.LogicError as err: 
     192                logger.warn("Unable to fetch the OpenCL platforms.  This likely " 
     193                            "means that the opencl drivers for your system are " 
     194                            "not installed.") 
     195                logger.warn(err) 
    183196 
    184197        p_index = 0 
     
    226239            if "SAS_OPENCL" in os.environ: 
    227240                del os.environ["SAS_OPENCL"] 
    228  
    229         #Sasmodels kernelcl doesn't exist when initiated with None 
    230         if 'sasmodels.kernelcl' in sys.modules: 
    231             sasmodels.kernelcl.ENV = None 
    232  
    233         reload(sasmodels.core) 
     241        sasmodels.kernelcl.reset_environment() 
    234242        event.Skip() 
    235243 
     
    247255        Run sasmodels check from here and report results from 
    248256        """ 
    249         import json 
    250         import platform 
    251         #import sasmodels 
    252  
    253257        #The same block of code as for OK but it is needed if we want to have 
    254258        #active response to Test button 
     
    261265            if "SAS_OPENCL" in os.environ: 
    262266                del os.environ["SAS_OPENCL"] 
    263  
    264         #Sasmodels kernelcl doesn't exist when initiated with None 
    265         if 'sasmodels.kernelcl' in sys.modules: 
    266             sasmodels.kernelcl.ENV = None 
    267  
    268  
    269         #Need to reload sasmodels.core module to account SAS_OPENCL = "None" 
    270         reload(sasmodels.core) 
    271  
    272  
    273         from sasmodels.model_test import model_tests 
     267        sasmodels.kernelcl.reset_environment() 
    274268 
    275269        try: 
    276             from sasmodels.kernelcl import environment 
    277             env = environment() 
     270            env = sasmodels.kernelcl.environment() 
    278271            clinfo = [(ctx.devices[0].platform.vendor, 
    279272                       ctx.devices[0].platform.version, 
     
    282275                       ctx.devices[0].version) 
    283276                      for ctx in env.context] 
    284         except ImportError: 
     277        except Exception: 
    285278            clinfo = None 
    286279 
    287280        failures = [] 
    288281        tests_completed = 0 
    289         for test in model_tests(): 
     282        for test in sasmodels.model_test.model_tests(): 
    290283            try: 
    291284                test() 
  • src/sas/sasgui/guiframe/gui_manager.py

    r8ac05a5 r9f45f83  
    4646from sas.sasgui.guiframe.CategoryManager import CategoryManager 
    4747from sas.sascalc.dataloader.loader import Loader 
     48from sas.sascalc.file_converter.nxcansas_writer import NXcanSASWriter 
    4849from sas.sasgui.guiframe.proxy import Connection 
    4950 
     
    24192420        default_name = fname 
    24202421        wildcard = "Text files (*.txt)|*.txt|"\ 
    2421                     "CanSAS 1D files(*.xml)|*.xml" 
    2422         path = None 
     2422                    "CanSAS 1D files (*.xml)|*.xml|"\ 
     2423                     "NXcanSAS files (*.h5)|*.h5|" 
     2424        options = [".txt", ".xml",".h5"] 
    24232425        dlg = wx.FileDialog(self, "Choose a file", 
    24242426                            self._default_save_location, 
     
    24302432            # This is MAC Fix 
    24312433            ext_num = dlg.GetFilterIndex() 
    2432             if ext_num == 0: 
    2433                 ext_format = '.txt' 
    2434             else: 
    2435                 ext_format = '.xml' 
     2434 
     2435            ext_format = options[ext_num] 
    24362436            path = os.path.splitext(path)[0] + ext_format 
    24372437            mypath = os.path.basename(path) 
    2438  
    2439             # Instantiate a loader 
    2440             loader = Loader() 
    2441             ext_format = ".txt" 
    2442             if os.path.splitext(mypath)[1].lower() == ext_format: 
     2438            fName = os.path.splitext(path)[0] + ext_format 
     2439 
     2440            if os.path.splitext(mypath)[1].lower() == options[0]: 
    24432441                # Make sure the ext included in the file name 
    24442442                # especially on MAC 
    2445                 fName = os.path.splitext(path)[0] + ext_format 
    24462443                self._onsaveTXT(data, fName) 
    2447             ext_format = ".xml" 
    2448             if os.path.splitext(mypath)[1].lower() == ext_format: 
     2444            elif os.path.splitext(mypath)[1].lower() == options[1]: 
    24492445                # Make sure the ext included in the file name 
    24502446                # especially on MAC 
    2451                 fName = os.path.splitext(path)[0] + ext_format 
     2447                # Instantiate a loader 
     2448                loader = Loader() 
    24522449                loader.save(fName, data, ext_format) 
     2450            elif os.path.splitext(mypath)[1].lower() == options[2]: 
     2451                nxcansaswriter = NXcanSASWriter() 
     2452                nxcansaswriter.write([data], fName) 
    24532453            try: 
    24542454                self._default_save_location = os.path.dirname(path) 
     
    24772477            if has_errors: 
    24782478                if data.dx is not None and data.dx != []: 
    2479                     out.write("<X>   <Y>   <dY>   <dX>\n") 
     2479                    out.write("<X>\t<Y>\t<dY>\t<dX>\n") 
    24802480                else: 
    2481                     out.write("<X>   <Y>   <dY>\n") 
     2481                    out.write("<X>\t<Y>\t<dY>\n") 
    24822482            else: 
    2483                 out.write("<X>   <Y>\n") 
     2483                out.write("<X>\t<Y>\n") 
    24842484 
    24852485            for i in range(len(data.x)): 
     
    25252525            text += 'dY_min = %s:  dY_max = %s\n' % (min(data.dy), max(data.dy)) 
    25262526        text += '\nData Points:\n' 
    2527         x_st = "X" 
     2527        text += "<index> \t<X> \t<Y> \t<dY> " 
     2528        text += "\t<dXl> \t<dXw>\n" if(data.dxl is not None and 
     2529                                       data.dxw is not None) else "\t<dX>\n" 
    25282530        for index in range(len(data.x)): 
    25292531            if data.dy is not None and len(data.dy) > index: 
     
    25362538                dx_val = 0.0 
    25372539            if data.dxl is not None and len(data.dxl) > index: 
    2538                 if index == 0: 
    2539                     x_st = "Xl" 
    25402540                dx_val = data.dxl[index] 
    2541             elif data.dxw is not None and len(data.dxw) > index: 
    2542                 if index == 0: 
    2543                     x_st = "Xw" 
    2544                 dx_val = data.dxw[index] 
    2545  
    2546             if index == 0: 
    2547                 text += "<index> \t<X> \t<Y> \t<dY> \t<d%s>\n" % x_st 
     2541                if data.dxw is not None and len(data.dxw) > index: 
     2542                    dx_val = "%s \t%s" % (data.dxl[index], data.dxw[index]) 
     2543 
    25482544            text += "%s \t%s \t%s \t%s \t%s\n" % (index, 
    25492545                                                  data.x[index], 
     
    25622558        """ 
    25632559        default_name = fname 
    2564         wildcard = "IGOR/DAT 2D file in Q_map (*.dat)|*.DAT" 
     2560        wildcard = "IGOR/DAT 2D file in Q_map (*.dat)|*.DAT|"\ 
     2561                   "NXcanSAS files (*.h5)|*.h5|" 
    25652562        dlg = wx.FileDialog(self, "Choose a file", 
    25662563                            self._default_save_location, 
     
    25742571            if ext_num == 0: 
    25752572                ext_format = '.dat' 
     2573            elif ext_num == 1: 
     2574                ext_format = '.h5' 
    25762575            else: 
    25772576                ext_format = '' 
     
    25812580            # Instantiate a loader 
    25822581            loader = Loader() 
    2583  
    2584             ext_format = ".dat" 
    2585             if os.path.splitext(mypath)[1].lower() == ext_format: 
     2582            if os.path.splitext(mypath)[1].lower() == '.dat': 
    25862583                # Make sure the ext included in the file name 
    25872584                # especially on MAC 
    25882585                fileName = os.path.splitext(path)[0] + ext_format 
    25892586                loader.save(fileName, data, ext_format) 
     2587            elif os.path.splitext(mypath)[1].lower() == '.h5': 
     2588                # Make sure the ext included in the file name 
     2589                # especially on MAC 
     2590                fileName = os.path.splitext(path)[0] + ext_format 
     2591                nxcansaswriter = NXcanSASWriter() 
     2592                nxcansaswriter.write([data], fileName) 
    25902593            try: 
    25912594                self._default_save_location = os.path.dirname(path) 
  • src/sas/sasgui/guiframe/local_perspectives/data_loader/data_loader.py

    r9c7e2b8 r5218180  
    205205            except NoKnownLoaderException as e: 
    206206                exception_occurred = True 
    207                 error_message = "Loading data failed!" + e.message 
     207                error_message = "Loading data failed!\n" + e.message 
    208208                file_errors[basename] = [error_message] 
    209209            except Exception as e: 
     
    224224                for message in error_array: 
    225225                    error_message += message + "\n" 
     226                error_message = error_message[:-1] 
    226227            self.load_complete(output=output, 
    227228                               message=error_message, 
     
    231232            self.load_complete(output=output, message="Loading data complete!", 
    232233                               info="info") 
    233         else: 
    234             self.load_complete(output=None, message=error_message, info="error") 
    235234 
    236235    def load_update(self, message="", info="warning"): 
Note: See TracChangeset for help on using the changeset viewer.