Changeset 5251ec6 in sasview for src/sas/sasgui/perspectives/invariant
- Timestamp:
- Oct 11, 2018 2:20:56 PM (6 years ago)
- Branches:
- master, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1249
- Children:
- 98b9f32
- Parents:
- 67ed543
- Location:
- src/sas/sasgui/perspectives/invariant
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/invariant/__init__.py
r5a405bd r5251ec6 3 3 4 4 from distutils.filelist import findall 5 from invariant import *5 from .invariant import * 6 6 7 7 def get_data_path(media): -
src/sas/sasgui/perspectives/invariant/invariant.py
r7432acb r5251ec6 133 133 name = data.__class__.__name__ 134 134 msg = "Invariant use only Data1D got: [%s] " % str(name) 135 raise ValueError , msg135 raise ValueError(msg) 136 136 self.compute_helper(data=data) 137 137 … … 144 144 if data_list is None: 145 145 data_list = [] 146 else: 147 data_list = list(data_list) # force iterator to list 146 148 if len(data_list) >= 1: 147 149 if len(data_list) == 1: … … 190 192 try: 191 193 self.compute_helper(data) 192 except :193 msg = "Invariant Set_data: " + str( sys.exc_value)194 except Exception as exc: 195 msg = "Invariant Set_data: " + str(exc) 194 196 wx.PostEvent(self.parent, StatusEvent(status=msg, info="error")) 195 197 else: … … 240 242 msg = "invariant.save_file: the data being saved is" 241 243 msg += " not a sas.sascalc.dataloader.data_info.Data1D object" 242 raise RuntimeError , msg244 raise RuntimeError(msg) 243 245 244 246 def set_state(self, state=None, datainfo=None): … … 258 260 msg = "invariant.set_state: datainfo parameter cannot" 259 261 msg += " be None in standalone mode" 260 raise RuntimeError , msg262 raise RuntimeError(msg) 261 263 # Make sure the user sees the invariant panel after loading 262 264 # self.parent.set_perspective(self.perspective) … … 281 283 self.on_set_state_helper(None) 282 284 283 except :284 logger.error("invariant.set_state: %s" % sys.exc_value)285 except Exception as exc: 286 logger.error("invariant.set_state: %s" % exc) 285 287 286 288 def on_set_state_helper(self, event=None): … … 320 322 else: 321 323 msg = "Scale can not be zero." 322 raise ValueError , msg324 raise ValueError(msg) 323 325 if len(new_plot.x) == 0: 324 326 return -
src/sas/sasgui/perspectives/invariant/invariant_details.py
r20fa5fe r5251ec6 2 2 Invariant panel 3 3 """ 4 import sys 5 4 6 import wx 5 import sys6 7 7 8 from sas.sasgui.guiframe.utils import format_number 8 from invariant_widgets import OutputTextCtrl 9 from .invariant_widgets import OutputTextCtrl 10 9 11 # Dimensions related to chart 10 12 RECTANGLE_WIDTH = 400.0 … … 33 35 34 36 35 class InvariantContainer (wx.Object):37 class InvariantContainer: 36 38 """ 37 39 This class stores some values resulting resulting from invariant -
src/sas/sasgui/perspectives/invariant/invariant_panel.py
r44e8f48 r5251ec6 319 319 background = self.background_tcl.GetValue().lstrip().rstrip() 320 320 if background == "": 321 raise ValueError , "Need a background"321 raise ValueError("Need a background") 322 322 if check_float(self.background_tcl): 323 323 return float(background) 324 324 else: 325 325 msg = "Receive invalid value for background : %s" % (background) 326 raise ValueError , msg326 raise ValueError(msg) 327 327 328 328 def get_scale(self): … … 332 332 scale = self.scale_tcl.GetValue().lstrip().rstrip() 333 333 if scale == "": 334 raise ValueError , "Need a background"334 raise ValueError("Need a background") 335 335 if check_float(self.scale_tcl): 336 336 if float(scale) <= 0.0: … … 338 338 self.scale_tcl.Refresh() 339 339 msg = "Receive invalid value for scale: %s" % (scale) 340 raise ValueError , msg340 raise ValueError(msg) 341 341 return float(scale) 342 342 else: 343 raise ValueError , "Receive invalid value for scale : %s" % (scale)343 raise ValueError("Receive invalid value for scale : %s" % (scale)) 344 344 345 345 def get_contrast(self): … … 386 386 self.volume_tcl.SetValue(format_number(v)) 387 387 self.volume_err_tcl.SetValue(format_number(dv)) 388 except :388 except Exception as exc: 389 389 self.volume_tcl.SetValue(format_number(None)) 390 390 self.volume_err_tcl.SetValue(format_number(None)) 391 391 msg = "Error occurred computing volume " 392 msg += " fraction: %s" % sys.exc_value392 msg += " fraction: %s" % exc 393 393 wx.PostEvent(self.parent, StatusEvent(status=msg, 394 394 info="error", … … 406 406 self.surface_tcl.SetValue(format_number(s)) 407 407 self.surface_err_tcl.SetValue(format_number(ds)) 408 except :408 except Exception as exc: 409 409 self.surface_tcl.SetValue(format_number(None)) 410 410 self.surface_err_tcl.SetValue(format_number(None)) 411 411 msg = "Error occurred computing " 412 msg += "specific surface: %s" % sys.exc_value412 msg += "specific surface: %s" % exc 413 413 wx.PostEvent(self.parent, StatusEvent(status=msg, info="error", 414 414 type="stop")) … … 426 426 self.inv_container.qstar_total = qstar_total 427 427 self.inv_container.qstar_total_err = qstar_total_err 428 except :428 except Exception as exc: 429 429 self.inv_container.qstar_total = "Error" 430 430 self.inv_container.qstar_total_err = "Error" … … 432 432 self.invariant_total_err_tcl.SetValue(format_number(None)) 433 433 msg = "Error occurred computing invariant using" 434 msg += " extrapolation: %s" % sys.exc_value434 msg += " extrapolation: %s" % exc 435 435 wx.PostEvent(self.parent, StatusEvent(status=msg, type="stop")) 436 436 … … 450 450 self._manager.plot_theory(data=extrapolated_data, 451 451 name="Low-Q extrapolation") 452 except :452 except Exception as exc: 453 453 self.inv_container.qstar_low = "ERROR" 454 454 self.inv_container.qstar_low_err = "ERROR" 455 455 self._manager.plot_theory(name="Low-Q extrapolation") 456 456 msg = "Error occurred computing low-Q " 457 msg += "invariant: %s" % sys.exc_value457 msg += "invariant: %s" % exc 458 458 wx.PostEvent(self.parent, 459 459 StatusEvent(status=msg, type="stop")) … … 462 462 try: 463 463 self._manager.plot_theory(name="Low-Q extrapolation") 464 except :465 logger.error( sys.exc_value)464 except Exception as exc: 465 logger.error(exc) 466 466 467 467 def get_high_qstar(self, inv, high_q=False): … … 483 483 self._manager.plot_theory(data=high_out_data, 484 484 name="High-Q extrapolation") 485 except :485 except Exception as exc: 486 486 #raise 487 487 self.inv_container.qstar_high = "ERROR" … … 489 489 self._manager.plot_theory(name="High-Q extrapolation") 490 490 msg = "Error occurred computing high-Q " 491 msg += "invariant: %s" % sys.exc_value491 msg += "invariant: %s" % exc 492 492 wx.PostEvent(self.parent, StatusEvent(status=msg, 493 493 type="stop")) … … 496 496 try: 497 497 self._manager.plot_theory(name="High-Q extrapolation") 498 except :499 logger.error( sys.exc_value)498 except Exception as exc: 499 logger.error(exc) 500 500 501 501 def get_qstar(self, inv): … … 625 625 background = self.get_background() 626 626 scale = self.get_scale() 627 except :628 msg = "Invariant Error: %s" % (sys.exc_value)627 except Exception as exc: 628 msg = "Invariant Error: %s" % exc 629 629 wx.PostEvent(self.parent, StatusEvent(status=msg, type="stop")) 630 630 return … … 641 641 inv, npts_low = self.set_extrapolation_low(inv=inv, low_q=low_q) 642 642 inv, npts_high = self.set_extrapolation_high(inv=inv, high_q=high_q) 643 except :644 msg = "Error occurred computing invariant: %s" % sys.exc_value643 except Exception as exc: 644 msg = "Error occurred computing invariant: %s" % exc 645 645 wx.PostEvent(self.parent, StatusEvent(status=msg, 646 646 info="warning", type="stop")) … … 652 652 try: 653 653 self.get_qstar(inv=inv) 654 except :655 msg = "Error occurred computing invariant: %s" % sys.exc_value654 except Exception as exc: 655 msg = "Error occurred computing invariant: %s" % exc 656 656 wx.PostEvent(self.parent, StatusEvent(status=msg, 657 657 info="warning", … … 674 674 porod_const = self.get_porod_const() 675 675 contrast = self.get_contrast() 676 except: 677 msg = r_msg + "Error occurred computing invariant: %s" % \ 678 sys.exc_value 676 except Exception as exc: 677 msg = r_msg + "Error occurred computing invariant: %s" % exc 679 678 wx.PostEvent(self.parent, StatusEvent(status=msg, 680 679 info="error", … … 685 684 extrapolation=extrapolation) 686 685 #compute surface and set value to txtcrtl 687 except :688 msg = "Error occurred computing invariant: %s" % sys.exc_value686 except Exception as exc: 687 msg = "Error occurred computing invariant: %s" % exc 689 688 wx.PostEvent(self.parent, StatusEvent(status=msg, 690 689 info="warning", … … 695 694 extrapolation=extrapolation) 696 695 697 except :698 msg = "Error occurred computing invariant: %s" % sys.exc_value696 except Exception as exc: 697 msg = "Error occurred computing invariant: %s" % exc 699 698 wx.PostEvent(self.parent, StatusEvent(status=msg, 700 699 info="warning", … … 845 844 if attr.__class__.__name__ == "StaticText": 846 845 return 847 if value in ["True", "False", True, False]: 848 value = bool(value) 846 if value in ["True", True]: 847 value = 1 848 elif value in ["False", False]: 849 value = 0 849 850 else: 850 851 value = str(value) 851 852 attr.SetValue(value) 852 except :853 logger.error("Invariant state: %s", sys.exc_value)853 except Exception as exc: 854 logger.error("Invariant state: %s", exc) 854 855 855 856 def get_bookmark_by_num(self, num=None): … … 867 868 try: 868 869 _, _, current_state, comp_state = self.state.bookmark_list[int(num)] 869 except :870 logger.error( sys.exc_value)871 raise ValueError , "No such bookmark exists"870 except Exception as exc: 871 logger.error(exc) 872 raise ValueError("No such bookmark exists") 872 873 873 874 # set the parameters … … 962 963 self.state.state_list[str(self.state.state_num)] = \ 963 964 self.state.clone_state() 964 except :965 logger.error( sys.exc_value)965 except Exception as exc: 966 logger.error(exc) 966 967 967 968 self._set_undo_flag(True) … … 1006 1007 try: 1007 1008 del self.state.state_list[str(i)] 1008 except :1009 logger.error( sys.exc_value)1009 except Exception as exc: 1010 logger.error(exc) 1010 1011 # Enable the undo button if it was not 1011 1012 self._set_undo_flag(True) … … 1071 1072 try: 1072 1073 del self.state.state_list[str(i)] 1073 except :1074 logger.error( sys.exc_value)1074 except Exception as exc: 1075 logger.error(exc) 1075 1076 1076 1077 # try to add new state of the text changes in the state_list … … 1086 1087 self.state.state_num = self.state.saved_state['state_num'] 1087 1088 self.state.state_list[str(self.state.state_num)] = self.state.clone_state() 1088 except :1089 logger.error( sys.exc_value)1089 except Exception as exc: 1090 logger.error(exc) 1090 1091 1091 1092 self._set_undo_flag(True) … … 1108 1109 self.state.saved_state[name] = str(value) 1109 1110 self.state.state_list[str(self.state.state_num)] = self.state.clone_state() 1110 except :1111 logger.error( sys.exc_value)1111 except Exception as exc: 1112 logger.error(exc) 1112 1113 1113 1114 def _get_input_list(self): … … 1118 1119 compute_num = self.state.saved_state['compute_num'] 1119 1120 # find values and put into the input list 1120 for key1, value1 in self.state.state_list[str(compute_num)].ite ritems():1121 for key, _ in self.state.input_list.ite ritems():1121 for key1, value1 in self.state.state_list[str(compute_num)].items(): 1122 for key, _ in self.state.input_list.items(): 1122 1123 if key == key1: 1123 1124 self.state.input_list[key] = value1 -
src/sas/sasgui/perspectives/invariant/invariant_state.py
re9920cd r5251ec6 2 2 State class for the invariant UI 3 3 """ 4 from __future__ import print_function 4 5 5 6 # import time … … 140 141 141 142 # text ctl general inputs ( excluding extrapolation text ctl) 142 for key, value in self.input_list.ite ritems():143 for key, value in self.input_list.items(): 143 144 if value == '': 144 145 continue … … 166 167 low_off = False 167 168 high_off = False 168 for key, value in self.input_list.ite ritems():169 for key, value in self.input_list.items(): 169 170 key_split = key.split('_') 170 171 max_ind = len(key_split) - 1 … … 216 217 # other outputs than Q* 217 218 name = item[0] + "_tcl" 218 if name in self.saved_state .keys():219 if name in self.saved_state: 219 220 value = self.saved_state[name] 220 221 … … 301 302 top_element.appendChild(state) 302 303 303 for name, value in self.saved_state.ite ritems():304 for name, value in self.saved_state.items(): 304 305 element = newdoc.createElement(str(name)) 305 306 element.appendChild(newdoc.createTextNode(str(value))) … … 310 311 top_element.appendChild(history) 311 312 312 for name, value in self.state_list.ite ritems():313 for name, value in self.state_list.items(): 313 314 history_element = newdoc.createElement('state_' + str(name)) 314 for state_name, state_value in value.ite ritems():315 for state_name, state_value in value.items(): 315 316 state_element = newdoc.createElement(str(state_name)) 316 317 child = newdoc.createTextNode(str(state_value)) … … 325 326 top_element.appendChild(bookmark) 326 327 item_list = ['time', 'date', 'state', 'comp_state'] 327 for name, value_list in self.bookmark_list.ite ritems():328 for name, value_list in self.bookmark_list.items(): 328 329 element = newdoc.createElement('mark_' + str(name)) 329 330 _, date, state, comp_state = value_list … … 334 335 state_list_element = newdoc.createElement('state') 335 336 comp_state_list_element = newdoc.createElement('comp_state') 336 for state_name, state_value in value_list[2].ite ritems():337 for state_name, state_value in value_list[2].items(): 337 338 state_element = newdoc.createElement(str(state_name)) 338 339 child = newdoc.createTextNode(str(state_value)) 339 340 state_element.appendChild(child) 340 341 state_list_element.appendChild(state_element) 341 for comp_name, comp_value in value_list[3].ite ritems():342 for comp_name, comp_value in value_list[3].items(): 342 343 comp_element = newdoc.createElement(str(comp_name)) 343 344 comp_element.appendChild(newdoc.createTextNode(str(comp_value))) … … 368 369 msg = "InvariantSate no longer supports non-CanSAS" 369 370 msg += " format for invariant files" 370 raise RuntimeError , msg371 raise RuntimeError(msg) 371 372 372 373 if node.get('version')\ … … 383 384 try: 384 385 timestamp = (entry.get('epoch')) 385 except :386 except Exception as exc: 386 387 msg = "InvariantSate.fromXML: Could not read" 387 msg += " timestamp\n %s" % sys.exc_value388 msg += " timestamp\n %s" % exc 388 389 logger.error(msg) 389 390 … … 453 454 Get the values (strings) from __str__ for report 454 455 """ 455 strings = self.__str__()456 457 456 # default string values 458 for num in range(1, 19): 459 exec "s_%s = 'NA'" % str(num) 460 lines = strings.split('\n') 457 s = {num: 'NA' for num in range(1, 19)} 461 458 # get all string values from __str__() 462 for line in range(0, len(lines)): 463 if line == 1: 464 s_1 = lines[1] 465 elif line == 2: 466 s_2 = lines[2] 459 lines = str(self).split('\n') 460 for line_num, line in enumerate(lines): 461 if line_num == 1: 462 s[1] = line 463 elif line_num == 2: 464 s[2] = line 467 465 else: 468 item = line s[line].split(':')466 item = line.split(':') 469 467 item[0] = item[0].strip() 470 468 if item[0] == "scale": 471 s _3= item[1]469 s[3] = item[1] 472 470 elif item[0] == "porod constant": 473 s _4= item[1]471 s[4] = item[1] 474 472 elif item[0] == "background": 475 s _5= item[1]473 s[5] = item[1] 476 474 elif item[0] == "contrast": 477 s _6= item[1]475 s[6] = item[1] 478 476 elif item[0] == "Extrapolation": 479 477 extra = item[1].split(";") 480 478 bool_0 = extra[0].split("=") 481 479 bool_1 = extra[1].split("=") 482 s _8= " " + bool_0[0] + "Q region = " + bool_0[1]483 s _7= " " + bool_1[0] + "Q region = " + bool_1[1]480 s[8] = " " + bool_0[0] + "Q region = " + bool_0[1] 481 s[7] = " " + bool_1[0] + "Q region = " + bool_1[1] 484 482 elif item[0] == "npts low": 485 s _9= item[1]483 s[9] = item[1] 486 484 elif item[0] == "npts high": 487 s _10= item[1]485 s[10] = item[1] 488 486 elif item[0] == "volume fraction": 489 487 val = item[1].split("+-")[0].strip() 490 488 error = item[1].split("+-")[1].strip() 491 s _17= val + " ± " + error489 s[17] = val + " ± " + error 492 490 elif item[0] == "specific surface": 493 491 val = item[1].split("+-")[0].strip() 494 492 error = item[1].split("+-")[1].strip() 495 s _18= val + " ± " + error493 s[18] = val + " ± " + error 496 494 elif item[0].split("(")[0].strip() == "power low": 497 s _11= item[0] + " =" + item[1]495 s[11] = item[0] + " =" + item[1] 498 496 elif item[0].split("(")[0].strip() == "power high": 499 s _12= item[0] + " =" + item[1]497 s[12] = item[0] + " =" + item[1] 500 498 elif item[0].split("[")[0].strip() == "Q* from low Q extrapolation": 501 499 # looks messy but this way the symbols +_ and % work on html … … 504 502 err = error.split("%")[0].strip() 505 503 percent = error.split("%")[1].strip() 506 s _13= val + " ± " + err + "%" + percent504 s[13] = val + " ± " + err + "%" + percent 507 505 elif item[0].split("[")[0].strip() == "Q* from data": 508 506 val = item[1].split("+-")[0].strip() … … 510 508 err = error.split("%")[0].strip() 511 509 percent = error.split("%")[1].strip() 512 s _14= val + " ± " + err + "%" + percent510 s[14] = val + " ± " + err + "%" + percent 513 511 elif item[0].split("[")[0].strip() == "Q* from high Q extrapolation": 514 512 val = item[1].split("+-")[0].strip() … … 516 514 err = error.split("%")[0].strip() 517 515 percent = error.split("%")[1].strip() 518 s _15= val + " ± " + err + "%" + percent516 s[15] = val + " ± " + err + "%" + percent 519 517 elif item[0].split("[")[0].strip() == "total Q*": 520 518 val = item[1].split("+-")[0].strip() 521 519 error = item[1].split("+-")[1].strip() 522 s _16= val + " ± " + error520 s[16] = val + " ± " + error 523 521 else: 524 522 continue 525 523 526 s _1 = self._check_html_format(s_1)524 s[1] = self._check_html_format(s[1]) 527 525 file_name = self._check_html_format(self.file) 528 526 … … 530 528 self.set_plot_state(extra_high=bool_0[1], extra_low=bool_1[1]) 531 529 # get ready for report with setting all the html strings 532 self.report_str = str(self.template_str) % (s_1, s_2, 533 s_3, s_4, s_5, s_6, s_7, s_8, 534 s_9, s_10, s_11, s_12, s_13, s_14, s_15, 535 s_16, s_17, s_18, file_name, "%s") 530 self.report_str = str(self.template_str) % ( 531 s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9], s[10], s[11], 532 s[12], s[13], s[14], s[15], s[16], s[17], s[18], file_name, "%s") 536 533 537 534 def _check_html_format(self, name): … … 692 689 state = InvariantState() 693 690 state.fromXML(node=nodes[0]) 694 except :691 except Exception as exc: 695 692 msg = "XML document does not contain invariant" 696 msg += " information.\n %s" % sys.exc_value693 msg += " information.\n %s" % exc 697 694 logger.info(msg) 698 695 return state … … 736 733 output.append(sas_entry) 737 734 else: 738 raise RuntimeError , "%s is not a file" % path735 raise RuntimeError("%s is not a file" % path) 739 736 740 737 # Return output consistent with the loader's api … … 782 779 msg = "The cansas writer expects a Data1D" 783 780 msg += " instance: %s" % str(datainfo.__class__.__name__) 784 raise RuntimeError , msg781 raise RuntimeError(msg) 785 782 # make sure title and data run is filled up. 786 783 if datainfo.title is None or datainfo.title == '': -
src/sas/sasgui/perspectives/invariant/report_dialog.py
rd0ce666f r5251ec6 92 92 # Mac 93 93 os.system("open %s" % fName) 94 except :94 except Exception as exc: 95 95 # DO not open 96 logger.error("Could not open file: %s" % sys.exc_value)96 logger.error("Could not open file: %s" % exc) 97 97 # delete image file 98 98 os.remove(pic_fname)
Note: See TracChangeset
for help on using the changeset viewer.