Changeset 13374be in sasview for src/sas/sasgui/perspectives/fitting/models.py
- Timestamp:
- Sep 20, 2017 7:55:53 AM (7 years ago)
- 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, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- fca1f50
- Parents:
- 6d62b7f (diff), 2a399ca (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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/fitting/models.py
rb682c6a r13374be 14 14 import py_compile 15 15 import shutil 16 from copy import copy 16 17 # Explicitly import from the pluginmodel module so that py2exe 17 18 # places it in the distribution. The Model1DPlugin class is used … … 281 282 """ 282 283 283 # regular model names only284 # Regular model names only 284 285 self.model_name_list = [] 285 286 286 # Build list automagically from sasmodels package287 # Build list automagically from sasmodels package 287 288 for model in load_standard_models(): 288 289 self.model_dictionary[model.name] = model … … 296 297 self.model_name_list.append(model.name) 297 298 298 # Looking for plugins299 # Looking for plugins 299 300 self.stored_plugins = self.findModels() 300 301 self.plugins = self.stored_plugins.values() 301 302 for name, plug in self.stored_plugins.iteritems(): 302 303 self.model_dictionary[name] = plug 304 # TODO: Remove 'hasattr' statements when old style plugin models 305 # are no longer supported. All sasmodels models will have 306 # the required attributes. 307 if hasattr(plug, 'is_structure_factor') and plug.is_structure_factor: 308 self.struct_list.append(plug) 309 self.plugins.remove(plug) 310 elif hasattr(plug, 'is_form_factor') and plug.is_form_factor: 311 self.multiplication_factor.append(plug) 312 if hasattr(plug, 'is_multiplicity_model') and plug.is_multiplicity_model: 313 self.multi_func_list.append(plug) 303 314 304 315 self._get_multifunc_models() … … 343 354 """ 344 355 self.plugins = [] 345 new_plugins = _find_models() 346 for name, plug in new_plugins.iteritems(): 347 for stored_name, stored_plug in self.stored_plugins.iteritems(): 348 if name == stored_name: 349 del self.stored_plugins[name] 350 del self.model_dictionary[name] 351 break 356 self.stored_plugins = _find_models() 357 structure_names = [model.name for model in self.struct_list] 358 form_names = [model.name for model in self.multiplication_factor] 359 360 # Remove all plugin structure factors and form factors 361 for name in copy(structure_names): 362 if '[plug-in]' in name: 363 i = structure_names.index(name) 364 del self.struct_list[i] 365 structure_names.remove(name) 366 for name in copy(form_names): 367 if '[plug-in]' in name: 368 i = form_names.index(name) 369 del self.multiplication_factor[i] 370 form_names.remove(name) 371 372 # Add new plugin structure factors and form factors 373 for name, plug in self.stored_plugins.iteritems(): 374 if plug.is_structure_factor: 375 if name in structure_names: 376 # Delete the old model from self.struct list 377 i = structure_names.index(name) 378 del self.struct_list[i] 379 # Add the new model to self.struct_list 380 self.struct_list.append(plug) 381 elif plug.is_form_factor: 382 if name in form_names: 383 # Delete the old model from self.multiplication_factor 384 i = form_names.index(name) 385 del self.multiplication_factor[i] 386 # Add the new model to self.multiplication_factor 387 self.multiplication_factor.append(plug) 388 389 # Add references to the updated model 352 390 self.stored_plugins[name] = plug 353 self.plugins.append(plug) 391 if not plug.is_structure_factor: 392 # Don't show S(Q) models in the 'Plugin Models' dropdown 393 self.plugins.append(plug) 354 394 self.model_dictionary[name] = plug 355 395 356 396 self.model_combobox.reset_list("Plugin Models", self.plugins) 397 self.model_combobox.reset_list("Structure Factors", self.struct_list) 398 self.model_combobox.reset_list("P(Q)*S(Q)", self.multiplication_factor) 399 357 400 return self.model_combobox.get_list() 358 401
Note: See TracChangeset
for help on using the changeset viewer.