Ignore:
Timestamp:
Jun 22, 2016 12:23:20 PM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
d7573c7
Parents:
ad52d31
Message:

refactor support for sum model; put tracebacks in logging errors

Location:
src/sas/sasgui/perspectives/calculator
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/calculator/model_editor.py

    r70c5d490 r7673ecd  
    578578                    else: 
    579579                        out_f.write(line + "\n") 
    580                 elif line.count("P1 = make_class"): 
     580                elif line.count("P1 = find_model"): 
    581581                    out_f.write(line % (name1) + "\n") 
    582                 elif line.count("P2 = make_class"): 
     582                elif line.count("P2 = find_model"): 
    583583                    out_f.write(line % (name2) + "\n") 
    584584 
     
    12381238##import scipy? 
    12391239#class Model(Model1DPlugin): 
    1240 #    name = "" 
     1240#    name = basename without extension of __file__ 
    12411241#    def __init__(self): 
    12421242#        Model1DPlugin.__init__(self, name=self.name) 
    12431243#        #set name same as file name 
    1244 #        self.name = self.get_fname() 
    12451244#        #self.params here 
    12461245#        self.description = "%s" 
     
    13041303""" 
    13051304TEST_TEMPLATE = """ 
    1306     def get_fname(self): 
    1307         path = sys._getframe().f_code.co_filename 
    1308         basename  = os.path.basename(path) 
    1309         name, _ = os.path.splitext(basename) 
    1310         return name 
    13111305###################################################################### 
    13121306## THIS IS FOR TEST. DO NOT MODIFY THE FOLLOWING LINES!!!!!!!!!!!!!!!! 
     
    13351329 
    13361330from sas.sascalc.fit.pluginmodel import Model1DPlugin 
    1337 from sasmodels.sasview_model import make_class 
    1338 from sasmodels.core import load_model_info 
    1339 # User can change the name of the model (only with single functional model) 
    1340 #P1_model: 
    1341 #from %s import Model as P1 
    1342  
    1343 #P2_model: 
    1344 #from %s import Model as P2 
     1331from sasmodels.sasview_model import find_model 
    13451332 
    13461333class Model(Model1DPlugin): 
    1347     name = "" 
    1348     def __init__(self): 
     1334    name = os.path.splitext(os.path.basename(__file__))[0] 
     1335    is_multiplicity_model = False 
     1336    def __init__(self, multiplicity=1): 
    13491337        Model1DPlugin.__init__(self, name='') 
    1350         P1 = make_class('%s') 
    1351         P2 = make_class('%s') 
     1338        P1 = find_model('%s') 
     1339        P2 = find_model('%s') 
    13521340        p_model1 = P1() 
    13531341        p_model2 = P2() 
    13541342        ## Setting  model name model description 
    13551343        self.description = '%s' 
    1356         self.name = self.get_fname() 
    13571344        if self.name.rstrip().lstrip() == '': 
    13581345            self.name = self._get_name(p_model1.name, p_model2.name) 
     
    13921379        #list of parameter that can be fitted 
    13931380        self._set_fixed_params() 
     1381 
    13941382        ## parameters with orientation 
     1383        self.orientation_params = [] 
    13951384        for item in self.p_model1.orientation_params: 
    13961385            new_item = "p1_" + item 
     
    14031392                self.orientation_params.append(new_item) 
    14041393        ## magnetic params 
     1394        self.magnetic_params = [] 
    14051395        for item in self.p_model1.magnetic_params: 
    14061396            new_item = "p1_" + item 
     
    14601450 
    14611451    def _set_dispersion(self): 
     1452        self.dispersion = {} 
    14621453        ##set dispersion only from p_model 
    14631454        for name , value in self.p_model1.dispersion.iteritems(): 
     
    15751566 
    15761567    def _set_fixed_params(self): 
     1568        self.fixed = [] 
    15771569        for item in self.p_model1.fixed: 
    15781570            new_item = "p1" + item 
     
    16251617        self.description += description 
    16261618 
    1627     def get_fname(self): 
    1628         path = sys._getframe().f_code.co_filename 
    1629         basename  = os.path.basename(path) 
    1630         name, _ = os.path.splitext(basename) 
    1631         return name 
    1632  
    16331619if __name__ == "__main__": 
    16341620    m1= Model() 
  • src/sas/sasgui/perspectives/calculator/pyconsole.py

    r26d6e045 r7673ecd  
    2727    """ 
    2828    # try running the model 
    29     from sasmodels.core import load_model, call_kernel 
    30     model = load_model(path) 
    31  
     29    from sasmodels.sasview_model import load_custom_model 
     30    Model = load_custom_model(path) 
     31    model = Model() 
    3232    q =  np.array([0.01, 0.1]) 
    33     kernel = model.make_kernel([q]) 
    34     Iq = call_kernel(kernel, {}) 
    35  
     33    Iq = model.evalDistribution(q) 
    3634    qx, qy =  np.array([0.01, 0.01]), np.array([0.1, 0.1]) 
    37     kernel = model.make_kernel([qx, qy]) 
    38     Iqxy = call_kernel(kernel, {}) 
     35    Iqxy = model.evalDistribution([qx, qy]) 
    3936 
    4037    result = """ 
     
    5653    except Exception: 
    5754        import traceback 
    58         result, errmsg = None, traceback.format_exc(limit=2) 
     55        result, errmsg = None, traceback.format_exc() 
    5956 
    6057    parts = ["Running model '%s'..." % os.path.basename(fname)] 
Note: See TracChangeset for help on using the changeset viewer.