Index: calculatorview/docs/sans_perspective_calculator_pylint.txt
===================================================================
--- calculatorview/docs/sans_perspective_calculator_pylint.txt	(revision 6d4891903c99abb2165866455c2ba14f67d6293f)
+++ calculatorview/docs/sans_perspective_calculator_pylint.txt	(revision 6d4891903c99abb2165866455c2ba14f67d6293f)
@@ -0,0 +1,2521 @@
+Microsoft Windows XP [Version 5.1.2600]
+(C) Copyright 1985-2001 Microsoft Corp.
+
+C:\Documents and Settings\galina\workspace>pylint sans.perspectives.calculator
+No config file found, using default configuration
+************* Module sans.perspectives.calculator
+W: 26: Bad indentation. Found 13 spaces, expected 12
+W: 27: Bad indentation. Found 13 spaces, expected 12
+W: 28: Bad indentation. Found 17 spaces, expected 16
+W: 29: Bad indentation. Found 13 spaces, expected 12
+C:  1: Missing docstring
+W:  2: Relative import 'calculator', should be 'sans.perspectives.calculator.cal
+culator'
+W:  2: Wildcard import calculator
+C:  7:get_data_path: Empty docstring
+W: 22:get_data_path: Unused variable 'i'
+W: 41:data_files: Redefining name 'data_files' from outer scope (line 33)
+C: 41:data_files: Operator not followed by a space
+    data_files =[]
+               ^
+C: 43:data_files: Invalid name "f" (should match [a-z_][a-z0-9_]{2,30}$)
+************* Module sans.perspectives.calculator.aperture_editor
+C: 43: Line too long (82/80)
+C: 58: Line too long (89/80)
+C: 77: Line too long (84/80)
+C: 79: Line too long (87/80)
+C: 82: Line too long (82/80)
+C: 90: Line too long (85/80)
+C:101: Line too long (88/80)
+C:103: Line too long (88/80)
+C:105: Line too long (89/80)
+C:107: Line too long (92/80)
+C:108: Line too long (87/80)
+C:110: Line too long (81/80)
+C:112: Line too long (81/80)
+C:114: Line too long (81/80)
+C:116: Line too long (85/80)
+C:252: Line too long (84/80)
+C:286: Line too long (89/80)
+C:289: Line too long (84/80)
+C:291: Line too long (82/80)
+C:301: Line too long (89/80)
+C:304: Line too long (83/80)
+C:306: Line too long (82/80)
+C:322: Line too long (82/80)
+W:350: Bad indentation. Found 13 spaces, expected 12
+C:  1: Missing docstring
+R: 20:ApertureDialog: Too many instance attributes (26/7)
+C: 20:ApertureDialog: Missing docstring
+W: 21:ApertureDialog.__init__: Redefining name 'aperture' from outer scope (line
+ 359)
+C: 21:ApertureDialog.__init__: Comma not followed by a space
+    def __init__(self, parent=None, manager=None,aperture=None, *args, **kwds):
+                                                ^^
+C: 25:ApertureDialog.__init__: Operator not followed by a space
+        kwds['size'] =(PANEL_WIDTH, PANEL_HEIGHT)
+                     ^
+W: 33:ApertureDialog.__init__: Unused variable 'self_description'
+C: 42:ApertureDialog._define_structure: Comma not followed by a space
+        self.box_aperture = wx.StaticBox(self, -1,str("Aperture"))
+                                                 ^^
+C: 79:ApertureDialog._layout_distance: Comma not followed by a space
+        self.distance_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 20),sty
+le=0)
+                                                                            ^^
+C:101:ApertureDialog._layout_size: Comma not followed by a space
+        self.x_aperture_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), s
+tyle=0)
+                                                                         ^^
+C:103:ApertureDialog._layout_size: Comma not followed by a space
+        self.y_aperture_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), s
+tyle=0)
+                                                                         ^^
+C:105:ApertureDialog._layout_size: Comma not followed by a space
+        self.z_aperture_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), s
+tyle=0)
+                                                                         ^^
+C:107:ApertureDialog._layout_size: Comma not followed by a space
+        self.aperture_size_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20)
+, style=0)
+                                                                            ^^
+W:134:ApertureDialog._do_layout: Unused argument 'data'
+W:186:ApertureDialog.set_values: Redefining name 'aperture' from outer scope (li
+ne 359)
+C:198:ApertureDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:198:ApertureDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:198:ApertureDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:226:ApertureDialog.on_change_name: Operator not followed by a space
+            self._notes += "name from %s to %s \n"%(self._aperture.name, name)
+                                                  ^
+W:234:ApertureDialog.on_change_type: Redefining built-in 'type'
+C:237:ApertureDialog.on_change_type: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._aperture.type, type)
+                                     ^
+C:252:ApertureDialog.on_change_distance: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._aperture.distance, dista
+nce)
+                                                ^
+C:257:ApertureDialog.on_change_distance: Operator not followed by a space
+                self._notes += "%s to %s"%(self._aperture.distance, distance)
+                                         ^
+C:262:ApertureDialog.on_change_distance: Operator not followed by a space
+            self._notes += "%s to %s"%(self._aperture.distance_unit, unit)
+                                     ^
+C:272:ApertureDialog.on_change_size_name: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._aperture.size_name, size_name)
+                                     ^
+C:286:ApertureDialog.on_change_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._aperture.size.x, x_apert
+ure_size)
+                                                ^
+C:291:ApertureDialog.on_change_size: Operator not followed by a space
+                self._notes += "%s to %s"%(self._aperture.size.x, x_aperture_siz
+e)
+                                         ^
+C:301:ApertureDialog.on_change_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._aperture.size.y, y_apert
+ure_size)
+                                                ^
+C:306:ApertureDialog.on_change_size: Operator not followed by a space
+                self._notes += "%s to %s"%(self._aperture.size.y, y_aperture_siz
+e)
+                                         ^
+C:316:ApertureDialog.on_change_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._aperture.size.z,
+                                                ^
+                                                   z_aperture_size)
+C:322:ApertureDialog.on_change_size: Operator not followed by a space
+                self._notes += "%s to %s"%(self._aperture.size.z, z_aperture_siz
+e)
+                                         ^
+C:327:ApertureDialog.on_change_size: Operator not followed by a space
+            self._notes += "%s to %s"%(self._aperture.size_unit, unit)
+                                     ^
+R:274:ApertureDialog.on_change_size: Too many branches (13/12)
+W:330:ApertureDialog.on_click_apply: Unused argument 'event'
+W:343:ApertureDialog.on_click_cancel: Unused argument 'event'
+R: 20:ApertureDialog: Too many public methods (295/20)
+W:128:ApertureDialog._layout_button: Attribute 'bt_close' defined outside __init
+__
+W: 43:ApertureDialog._define_structure: Attribute 'boxsizer_aperture' defined ou
+tside __init__
+W: 79:ApertureDialog._layout_distance: Attribute 'distance_unit_tcl' defined out
+side __init__
+W: 67:ApertureDialog._layout_type: Attribute 'type_tcl' defined outside __init__
+
+W:105:ApertureDialog._layout_size: Attribute 'z_aperture_size_tcl' defined outsi
+de __init__
+W: 50:ApertureDialog._define_structure: Attribute 'button_sizer' defined outside
+ __init__
+W: 58:ApertureDialog._layout_name: Attribute 'aperture_name_tcl' defined outside
+ __init__
+W: 77:ApertureDialog._layout_distance: Attribute 'distance_tcl' defined outside
+__init__
+W:122:ApertureDialog._layout_button: Attribute 'bt_apply' defined outside __init
+__
+W: 48:ApertureDialog._define_structure: Attribute 'size_name_sizer' defined outs
+ide __init__
+W:125:ApertureDialog._layout_button: Attribute 'bt_cancel' defined outside __ini
+t__
+W:103:ApertureDialog._layout_size: Attribute 'y_aperture_size_tcl' defined outsi
+de __init__
+W: 90:ApertureDialog._layout_size_name: Attribute 'size_name_tcl' defined outsid
+e __init__
+W:107:ApertureDialog._layout_size: Attribute 'aperture_size_unit_tcl' defined ou
+tside __init__
+W: 45:ApertureDialog._define_structure: Attribute 'name_sizer' defined outside _
+_init__
+W: 41:ApertureDialog._define_structure: Attribute 'main_sizer' defined outside _
+_init__
+W: 49:ApertureDialog._define_structure: Attribute 'aperture_size_sizer' defined
+outside __init__
+W:101:ApertureDialog._layout_size: Attribute 'x_aperture_size_tcl' defined outsi
+de __init__
+W: 46:ApertureDialog._define_structure: Attribute 'type_sizer' defined outside _
+_init__
+W: 47:ApertureDialog._define_structure: Attribute 'distance_sizer' defined outsi
+de __init__
+W: 42:ApertureDialog._define_structure: Attribute 'box_aperture' defined outside
+ __init__
+C:352: Operator not followed by a space
+if __name__ =="__main__":
+            ^^
+C:354: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:356: Invalid name "loader" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:359: Invalid name "aperture" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:360: Invalid name "dlg" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+************* Module sans.perspectives.calculator.calculator
+C:127: Line too long (82/80)
+W: 74: TODO: replace the text with a nice image
+C:  1: Missing docstring
+W: 21:Plugin.__init__: Unused argument 'standalone'
+W: 37:Plugin.populate_menu: Redefining built-in 'id'
+C: 37:Plugin.populate_menu: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30
+}$)
+C: 37:Plugin.populate_menu: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30
+}$)
+W: 37:Plugin.populate_menu: Unused argument 'owner'
+W: 37:Plugin.populate_menu: Unused argument 'id'
+R: 37:Plugin.populate_menu: Method could be a function
+W: 77:Plugin.help: Relative import 'help_panel', should be 'sans.perspectives.ca
+lculator.help_panel'
+W: 70:Plugin.help: Unused argument 'evt'
+R: 70:Plugin.help: Method could be a function
+W: 81:Plugin.get_context_menu: Unused argument 'graph'
+R: 81:Plugin.get_context_menu: Method could be a function
+W:116:Plugin.get_tools: Unused variable 'data_editor_help'
+W:126:Plugin.on_edit_data: Relative import 'data_editor', should be 'sans.perspe
+ctives.calculator.data_editor'
+W:122:Plugin.on_edit_data: Unused argument 'event'
+W:134:Plugin.on_calculate_sld: Relative import 'sld_panel', should be 'sans.pers
+pectives.calculator.sld_panel'
+W:130:Plugin.on_calculate_sld: Unused argument 'event'
+W:142:Plugin.on_calculate_slit_size: Relative import 'slit_length_calculator_pan
+el', should be 'sans.perspectives.calculator.slit_length_calculator_panel'
+W:138:Plugin.on_calculate_slit_size: Unused argument 'event'
+W:146:Plugin.on_perspective: Unused argument 'event'
+W: 12: Unused import wx
+************* Module sans.perspectives.calculator.calculator_widgets
+C: 22: Line too long (83/80)
+W: 23:InputTextCtrl.__init__: Unused variable 'full_selection'
+C: 54:InputTextCtrl._highlight_text: Operator not preceded by a space
+                if start==end:
+                        ^^
+C: 55:InputTextCtrl._highlight_text: Comma not followed by a space
+                    control.SetSelection(-1,-1)
+                                           ^^
+R: 13:InputTextCtrl: Too many public methods (304/20)
+W: 48:InputTextCtrl._highlight_text: Attribute 'full_selection' defined outside
+__init__
+R: 58:InterActiveOutputTextCtrl: Too many public methods (304/20)
+R: 69:OutputTextCtrl: Too many public methods (304/20)
+W: 11: Unused import os
+************* Module sans.perspectives.calculator.collimation_editor
+C: 47: Line too long (86/80)
+C: 48: Line too long (88/80)
+C: 82: Line too long (81/80)
+C: 85: Line too long (86/80)
+C: 88: Line too long (82/80)
+C: 92: Line too long (87/80)
+C: 93: Line too long (83/80)
+C:115: Line too long (82/80)
+C:117: Line too long (85/80)
+C:167: Line too long (81/80)
+C:254: Line too long (82/80)
+C:277: Line too long (82/80)
+C:281: Line too long (83/80)
+C:301: Line too long (81/80)
+W:520: Bad indentation. Found 13 spaces, expected 12
+C:  1: Missing docstring
+W:  7: Relative import 'aperture_editor', should be 'sans.perspectives.calculato
+r.aperture_editor'
+R: 23:CollimationDialog: Too many instance attributes (33/7)
+C: 23:CollimationDialog: Empty docstring
+W: 26:CollimationDialog.__init__: Dangerous default value [] as argument
+C: 30:CollimationDialog.__init__: Operator not followed by a space
+        kwds['size'] =(PANEL_WIDTH, PANEL_HEIGHT)
+                     ^
+C: 47:CollimationDialog._define_structure: Comma not followed by a space
+        self.box_collimation = wx.StaticBox(self, -1,str("Edit Selected Collimat
+ion"))
+                                                    ^^
+C:117:CollimationDialog._layout_length: Comma not followed by a space
+        self.length_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 20),style
+=0)
+                                                                          ^^
+W:172:CollimationDialog._do_layout: Unused argument 'data'
+C:196:CollimationDialog.get_current_collimation: Empty docstring
+W:220:CollimationDialog.add_collimation: Unused argument 'event'
+W:238:CollimationDialog.remove_collimation: Unused argument 'event'
+W:265:CollimationDialog.on_select_collimation: Unused argument 'event'
+C:281:CollimationDialog.enable_collimation: Operator not followed by a space
+            collimation_hint_txt = 'collimations available: %s '%str(n_collimati
+on)
+                                                                ^
+W:305:CollimationDialog.add_aperture: Unused argument 'event'
+W:329:CollimationDialog.edit_aperture: Redefining name 'dlg' from outer scope (l
+ine 526)
+W:327:CollimationDialog.edit_aperture: Unused variable 'name'
+W:319:CollimationDialog.edit_aperture: Unused argument 'event'
+W:333:CollimationDialog.remove_aperture: Unused argument 'event'
+C:380:CollimationDialog.enable_aperture: Operator not followed by a space
+            aperture_hint_txt = 'apertures available: %s '%str(n_aperture)
+                                                          ^
+C:468:CollimationDialog.on_change_name: Operator not followed by a space
+            self._notes += "name from %s to %s \n"%(collimation.name, name)
+                                                  ^
+W:459:CollimationDialog.on_change_name: Unused variable 'collimation_name'
+C:490:CollimationDialog.on_change_length: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(collimation.length, length)
+                                                ^
+C:495:CollimationDialog.on_change_length: Operator not followed by a space
+                self._notes += "%s to %s"%(collimation.length, length)
+                                         ^
+C:500:CollimationDialog.on_change_length: Operator not followed by a space
+            self._notes += "%s to %s"%(collimation.length_unit, unit)
+                                     ^
+W:478:CollimationDialog.on_change_length: Unused variable 'position'
+W:478:CollimationDialog.on_change_length: Unused variable 'collimation_name'
+W:503:CollimationDialog.on_click_apply: Unused argument 'event'
+W:513:CollimationDialog.on_click_cancel: Unused argument 'event'
+R: 23:CollimationDialog: Too many public methods (305/20)
+W:133:CollimationDialog._layout_button: Attribute 'bt_close' defined outside __i
+nit__
+W: 81:CollimationDialog._layout_collimation: Attribute 'bt_remove_collimation' d
+efined outside __init__
+W: 62:CollimationDialog._define_structure: Attribute 'aperture_button_sizer' def
+ined outside __init__
+W:152:CollimationDialog._layout_aperture: Attribute 'bt_edit_aperture' defined o
+utside __init__
+W: 77:CollimationDialog._layout_collimation: Attribute 'bt_add_collimation' defi
+ned outside __init__
+W: 58:CollimationDialog._define_structure: Attribute 'button_sizer' defined outs
+ide __init__
+W:165:CollimationDialog._layout_aperture: Attribute 'aperture_txt' defined outsi
+de __init__
+W: 47:CollimationDialog._define_structure: Attribute 'box_collimation' defined o
+utside __init__
+W:127:CollimationDialog._layout_button: Attribute 'bt_apply' defined outside __i
+nit__
+W:117:CollimationDialog._layout_length: Attribute 'length_unit_tcl' defined outs
+ide __init__
+W: 54:CollimationDialog._define_structure: Attribute 'collimation_hint_sizer' de
+fined outside __init__
+W:130:CollimationDialog._layout_button: Attribute 'bt_cancel' defined outside __
+init__
+W: 72:CollimationDialog._layout_collimation: Attribute 'collimation_cbox' define
+d outside __init__
+W: 57:CollimationDialog._define_structure: Attribute 'length_sizer' defined outs
+ide __init__
+W: 48:CollimationDialog._define_structure: Attribute 'boxsizer_collimation' defi
+ned outside __init__
+W:155:CollimationDialog._layout_aperture: Attribute 'bt_remove_aperture' defined
+ outside __init__
+W:105:CollimationDialog._layout_name: Attribute 'name_tcl' defined outside __ini
+t__
+W: 51:CollimationDialog._define_structure: Attribute 'collimation_sizer' defined
+ outside __init__
+W: 56:CollimationDialog._define_structure: Attribute 'name_sizer' defined outsid
+e __init__
+W: 61:CollimationDialog._define_structure: Attribute 'aperture_sizer' defined ou
+tside __init__
+W:115:CollimationDialog._layout_length: Attribute 'length_tcl' defined outside _
+_init__
+W: 46:CollimationDialog._define_structure: Attribute 'main_sizer' defined outsid
+e __init__
+W:145:CollimationDialog._layout_aperture: Attribute 'aperture_cbox' defined outs
+ide __init__
+W: 53:CollimationDialog._define_structure: Attribute 'collimation_button_sizer'
+defined outside __init__
+W:149:CollimationDialog._layout_aperture: Attribute 'bt_add_aperture' defined ou
+tside __init__
+W: 90:CollimationDialog._layout_collimation: Attribute 'collimation_txt' defined
+ outside __init__
+W: 63:CollimationDialog._define_structure: Attribute 'aperture_hint_sizer' defin
+ed outside __init__
+C:523: Operator not followed by a space
+if __name__ =="__main__":
+            ^^
+C:525: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:526: Invalid name "dlg" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W:  5: Unused import Loader
+************* Module sans.perspectives.calculator.console
+C:  1: Missing docstring
+W:  5: Reimport 'wx' (imported line 1)
+C: 23:ConsoleDialog: Missing docstring
+W: 24:ConsoleDialog.__init__: Redefining name 'data' from outer scope (line 59)
+W: 24:ConsoleDialog.__init__: Redefining built-in 'id'
+C: 24:ConsoleDialog.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,
+30}$)
+R: 24:ConsoleDialog.__init__: Too many arguments (7/5)
+C: 24:ConsoleDialog.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C: 43:ConsoleDialog.set_manager: Empty docstring
+C: 48:ConsoleDialog.set_message: Empty docstring
+R: 23:ConsoleDialog: Too many public methods (285/20)
+C: 53: Operator not followed by a space
+if __name__ =="__main__":
+            ^^
+C: 55: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 57: Invalid name "loader" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 59: Invalid name "data" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C: 60: Invalid name "dlg" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+************* Module sans.perspectives.calculator.data_editor
+C: 45: Line too long (92/80)
+C: 47: Line too long (93/80)
+W: 57: Bad indentation. Found 9 spaces, expected 8
+W: 58: Bad indentation. Found 9 spaces, expected 8
+W: 59: Bad indentation. Found 9 spaces, expected 8
+W: 60: Bad indentation. Found 9 spaces, expected 8
+W: 61: Bad indentation. Found 9 spaces, expected 8
+W: 62: Bad indentation. Found 9 spaces, expected 8
+W: 63: Bad indentation. Found 9 spaces, expected 8
+W: 64: Bad indentation. Found 9 spaces, expected 8
+W: 65: Bad indentation. Found 9 spaces, expected 8
+W: 66: Bad indentation. Found 9 spaces, expected 8
+W: 67: Bad indentation. Found 9 spaces, expected 8
+W: 68: Bad indentation. Found 9 spaces, expected 8
+W: 69: Bad indentation. Found 9 spaces, expected 8
+W: 70: Bad indentation. Found 9 spaces, expected 8
+W: 71: Bad indentation. Found 13 spaces, expected 12
+W: 72: Bad indentation. Found 13 spaces, expected 12
+C:129: Line too long (100/80)
+C:188: Line too long (83/80)
+C:440: Line too long (97/80)
+C:452: Line too long (89/80)
+C:512: Line too long (89/80)
+C:  1: Missing docstring
+W:  9: Relative import 'detector_editor', should be 'sans.perspectives.calculato
+r.detector_editor'
+W: 10: Relative import 'collimation_editor', should be 'sans.perspectives.calcul
+ator.collimation_editor'
+W: 11: Relative import 'console', should be 'sans.perspectives.calculator.consol
+e'
+R: 51:DataEditorPanel: Too many instance attributes (31/7)
+W: 56:DataEditorPanel.__init__: Dangerous default value [] as argument
+C: 58:DataEditorPanel.__init__: Operator not preceded by a space
+         kwds["size"]= (PANEL_WIDTH, PANEL_HEIGTH)
+                     ^
+W: 65:DataEditorPanel.__init__: Unused variable 'self_description'
+W:101:DataEditorPanel._layout_name: Redefining built-in 'id'
+C:101:DataEditorPanel._layout_name: Invalid name "id" (should match [a-z_][a-z0-
+9_]{2,30}$)
+E:180:DataEditorPanel._layout_source: Instance of 'DataEditorPanel' has no 'sour
+ce_sizer' member
+E:192:DataEditorPanel._layout_summary: Instance of 'DataEditorPanel' has no 'sum
+mary_sizer' member
+C:198:DataEditorPanel._layout_button: Comma not followed by a space
+        self.bt_summary = wx.Button(self, -1, "View", size=(_BOX_WIDTH,-1))
+                                                                      ^^
+C:202:DataEditorPanel._layout_button: Comma not followed by a space
+        self.bt_save = wx.Button(self, -1, "Save As", size=(_BOX_WIDTH,-1))
+                                                                      ^^
+C:206:DataEditorPanel._layout_button: Comma not followed by a space
+        self.bt_apply = wx.Button(self, -1, "Apply", size=(_BOX_WIDTH,-1))
+                                                                     ^^
+C:210:DataEditorPanel._layout_button: Comma not followed by a space
+        self.bt_reset = wx.Button(self, -1,'Reset', size=(_BOX_WIDTH,-1))
+                                          ^^
+C:214:DataEditorPanel._layout_button: Comma not followed by a space
+        self.bt_close = wx.Button(self, -1,'Close', size=(_BOX_WIDTH,-1))
+                                          ^^
+C:246:DataEditorPanel._do_layout: Comma not followed by a space
+        self.SetScrollbars(20,20,25,65)
+                             ^^
+W:224:DataEditorPanel._do_layout: Unused argument 'data'
+C:267:DataEditorPanel.reset_panel: Empty docstring
+C:274:DataEditorPanel.on_select_data: Empty docstring
+W:277:DataEditorPanel.on_select_data: Unused variable 'position'
+W:277:DataEditorPanel.on_select_data: Unused variable 'data_name'
+W:274:DataEditorPanel.on_select_data: Unused argument 'event'
+C:288:DataEditorPanel.get_current_data: Empty docstring
+C:298:DataEditorPanel.enable_data_cbox: Empty docstring
+C:314:DataEditorPanel.reset_radiobox: Empty docstring
+W:326:DataEditorPanel.set_sample: Unused variable 'position'
+W:326:DataEditorPanel.set_sample: Unused variable 'data_name'
+W:337:DataEditorPanel.set_source: Unused variable 'position'
+W:337:DataEditorPanel.set_source: Unused variable 'data_name'
+W:348:DataEditorPanel.set_detector: Unused variable 'position'
+W:348:DataEditorPanel.set_detector: Unused variable 'data_name'
+W:359:DataEditorPanel.set_collimation: Unused variable 'position'
+W:359:DataEditorPanel.set_collimation: Unused variable 'data_name'
+W:370:DataEditorPanel.edit_collimation: Unused variable 'position'
+W:370:DataEditorPanel.edit_collimation: Unused variable 'data_name'
+W:381:DataEditorPanel.edit_detector: Unused variable 'position'
+W:381:DataEditorPanel.edit_detector: Unused variable 'data_name'
+W:395:DataEditorPanel.edit_sample: Relative import 'sample_editor', should be 's
+ans.perspectives.calculator.sample_editor'
+W:392:DataEditorPanel.edit_sample: Unused variable 'position'
+W:392:DataEditorPanel.edit_sample: Unused variable 'data_name'
+W:407:DataEditorPanel.edit_source: Relative import 'source_editor', should be 's
+ans.perspectives.calculator.source_editor'
+W:404:DataEditorPanel.edit_source: Unused variable 'position'
+W:404:DataEditorPanel.edit_source: Unused variable 'data_name'
+C:420:DataEditorPanel.choose_data_file: Invalid name "l" (should match [a-z_][a-
+z0-9_]{2,30}$)
+W:427:DataEditorPanel.choose_data_file: Unused variable 'mypath'
+C:440:DataEditorPanel.complete_loading: Comma not followed by a space
+            wx.PostEvent(self.parent.parent, StatusEvent(status=msg, info="warni
+ng",type='stop'))
+
+   ^^
+C:452:DataEditorPanel.complete_loading: Comma not followed by a space
+        wx.PostEvent(self.parent.parent, StatusEvent(status=msg,info="info",type
+='stop'))
+                                                               ^^
+W:432:DataEditorPanel.complete_loading: Unused argument 'filename'
+C:487:DataEditorPanel.on_change_run: Operator not followed by a space
+            self._notes += "run from %s to %s \n"%(data.run, str(run))
+                                                 ^
+W:480:DataEditorPanel.on_change_run: Unused variable 'data_name'
+W:480:DataEditorPanel.on_change_run: Unused variable 'position'
+W:475:DataEditorPanel.on_change_run: Unused argument 'event'
+C:500:DataEditorPanel.on_change_title: Operator not followed by a space
+            self._notes += "title from %s to %s \n"%(data.title, str(title))
+                                                   ^
+W:494:DataEditorPanel.on_change_title: Unused variable 'position'
+W:494:DataEditorPanel.on_change_title: Unused variable 'data_name'
+W:490:DataEditorPanel.on_change_title: Unused argument 'event'
+C:512:DataEditorPanel.on_click_browse: Comma not followed by a space
+            wx.PostEvent(self.parent.parent, StatusEvent(status="Loading...",inf
+o="info",
+                                                                            ^^
+                                type="progress"))
+W:528:DataEditorPanel.on_click_browse: No exception type(s) specified
+W:519:DataEditorPanel.on_click_browse: Relative import 'load_thread', should be
+'sans.perspectives.calculator.load_thread'
+E:521:DataEditorPanel.on_click_browse: Instance of 'DataReader' has no 'isrunnin
+g' member
+E:522:DataEditorPanel.on_click_browse: Instance of 'DataReader' has no 'stop' me
+mber
+E:526:DataEditorPanel.on_click_browse: Instance of 'DataReader' has no 'queue' m
+ember
+C:528:DataEditorPanel.on_click_browse: Operator not followed by a space
+            msg = "Data Editor: %s"%(sys.exc_value)
+                                   ^
+W:503:DataEditorPanel.on_click_browse: Unused argument 'event'
+C:532:DataEditorPanel.on_edit: Empty docstring
+W:532:DataEditorPanel.on_edit: Unused argument 'event'
+W:548:DataEditorPanel.on_click_apply: Unused variable 'position'
+W:548:DataEditorPanel.on_click_apply: Unused variable 'data_name'
+W:544:DataEditorPanel.on_click_apply: Unused argument 'event'
+W:586:DataEditorPanel.on_click_save: No exception type(s) specified
+W:555:DataEditorPanel.on_click_save: Unused argument 'event'
+W:593:DataEditorPanel.on_click_view: Unused variable 'position'
+W:593:DataEditorPanel.on_click_view: Unused variable 'data_name'
+W:589:DataEditorPanel.on_click_view: Unused argument 'event'
+C:601:DataEditorPanel.on_click_reset: Empty docstring
+C:607:DataEditorPanel.on_click_reset: Operator not preceded by a space
+        self._data[position]= deepcopy(self._reset_data[position])
+                            ^
+W:604:DataEditorPanel.on_click_reset: Unused variable 'data_name'
+W:601:DataEditorPanel.on_click_reset: Unused argument 'event'
+W:610:DataEditorPanel.on_close: Unused argument 'event'
+R: 51:DataEditorPanel: Too many public methods (293/20)
+W:214:DataEditorPanel._layout_button: Attribute 'bt_close' defined outside __ini
+t__
+W:156:DataEditorPanel._layout_editor: Attribute 'collimation_rb' defined outside
+ __init__
+W:158:DataEditorPanel._layout_editor: Attribute 'bt_edit' defined outside __init
+__
+W:188:DataEditorPanel._layout_summary: Attribute 'data_summary' defined outside
+__init__
+W:152:DataEditorPanel._layout_editor: Attribute 'detector_rb' defined outside __
+init__
+W:515:DataEditorPanel.on_click_browse: Attribute 'done' defined outside __init__
+
+W:129:DataEditorPanel._layout_run: Attribute 'data_run_tcl' defined outside __in
+it__
+W: 87:DataEditorPanel._define_structure: Attribute 'edit_sizer' defined outside
+__init__
+W:154:DataEditorPanel._layout_editor: Attribute 'sample_rb' defined outside __in
+it__
+W: 89:DataEditorPanel._define_structure: Attribute 'button_sizer' defined outsid
+e __init__
+W:116:DataEditorPanel._layout_title: Attribute 'data_title_tcl' defined outside
+__init__
+W: 83:DataEditorPanel._define_structure: Attribute 'run_sizer' defined outside _
+_init__
+W:210:DataEditorPanel._layout_button: Attribute 'bt_reset' defined outside __ini
+t__
+W:206:DataEditorPanel._layout_button: Attribute 'bt_apply' defined outside __ini
+t__
+W: 97:DataEditorPanel._layout_name: Attribute 'data_cbox' defined outside __init
+__
+W: 84:DataEditorPanel._define_structure: Attribute 'instrument_sizer' defined ou
+tside __init__
+W: 80:DataEditorPanel._define_structure: Attribute 'name_sizer' defined outside
+__init__
+W:102:DataEditorPanel._layout_name: Attribute 'browse_button' defined outside __
+init__
+W:198:DataEditorPanel._layout_button: Attribute 'bt_summary' defined outside __i
+nit__
+W: 78:DataEditorPanel._define_structure: Attribute 'main_sizer' defined outside
+__init__
+W:177:DataEditorPanel._layout_source: Attribute 'bt_edit_source' defined outside
+ __init__
+W:142:DataEditorPanel._layout_instrument: Attribute 'instrument_tcl' defined out
+side __init__
+W: 82:DataEditorPanel._define_structure: Attribute 'title_sizer' defined outside
+ __init__
+W:202:DataEditorPanel._layout_button: Attribute 'bt_save' defined outside __init
+__
+W:155:DataEditorPanel._layout_editor: Attribute 'source_rb' defined outside __in
+it__
+C:616:DataEditorWindow: Missing docstring
+C:618:DataEditorWindow.__init__: Operator not preceded by a space
+        kwds["size"]= (PANEL_WIDTH, PANEL_HEIGTH)
+                    ^
+R:616:DataEditorWindow: Too many public methods (288/20)
+C:630: Operator not followed by a space
+if __name__ =="__main__":
+            ^^
+C:632: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:633: Invalid name "window" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W:  8: Unused import Collimation
+W:  8: Unused import Detector
+W:  8: Unused import DataInfo
+W: 13: Unused import check_float
+************* Module sans.perspectives.calculator.detector_editor
+C: 22: Line too long (82/80)
+C: 88: Line too long (81/80)
+C:100: Line too long (91/80)
+C:101: Line too long (86/80)
+C:102: Line too long (81/80)
+C:107: Line too long (82/80)
+C:108: Line too long (81/80)
+C:110: Line too long (88/80)
+C:123: Line too long (82/80)
+C:125: Line too long (82/80)
+C:127: Line too long (83/80)
+C:129: Line too long (84/80)
+C:147: Line too long (87/80)
+C:149: Line too long (87/80)
+C:151: Line too long (88/80)
+C:153: Line too long (90/80)
+C:154: Line too long (83/80)
+C:162: Line too long (84/80)
+C:171: Line too long (87/80)
+C:173: Line too long (87/80)
+C:175: Line too long (88/80)
+C:177: Line too long (89/80)
+C:186: Line too long (85/80)
+C:195: Line too long (85/80)
+C:197: Line too long (85/80)
+C:199: Line too long (86/80)
+C:201: Line too long (89/80)
+C:210: Line too long (82/80)
+C:218: Line too long (83/80)
+C:220: Line too long (91/80)
+C:224: Line too long (82/80)
+C:415: Line too long (88/80)
+C:421: Line too long (88/80)
+C:427: Line too long (85/80)
+C:487: Line too long (88/80)
+C:546: Line too long (81/80)
+C:552: Line too long (83/80)
+C:579: Line too long (88/80)
+C:582: Line too long (82/80)
+C:584: Line too long (81/80)
+C:594: Line too long (88/80)
+C:597: Line too long (81/80)
+C:599: Line too long (81/80)
+C:609: Line too long (88/80)
+C:612: Line too long (82/80)
+C:614: Line too long (81/80)
+C:642: Line too long (88/80)
+C:645: Line too long (82/80)
+C:647: Line too long (81/80)
+C:657: Line too long (88/80)
+C:660: Line too long (82/80)
+C:662: Line too long (81/80)
+C:672: Line too long (88/80)
+C:677: Line too long (81/80)
+C:703: Line too long (86/80)
+C:706: Line too long (81/80)
+C:718: Line too long (86/80)
+C:733: Line too long (86/80)
+C:765: Line too long (85/80)
+C:768: Line too long (91/80)
+W:787: Bad indentation. Found 13 spaces, expected 12
+C:  1: Missing docstring
+R: 20:DetectorDialog: Too many instance attributes (48/7)
+C: 20:DetectorDialog: Missing docstring
+W: 21:DetectorDialog.__init__: Redefining name 'detector' from outer scope (line
+ 806)
+W: 21:DetectorDialog.__init__: Redefining built-in 'id'
+C: 21:DetectorDialog.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2
+,30}$)
+R: 21:DetectorDialog.__init__: Too many arguments (7/5)
+C: 21:DetectorDialog.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2
+,30}$)
+W: 35:DetectorDialog.__init__: No exception type(s) specified
+C: 42:DetectorDialog._define_structure: Comma not followed by a space
+        self.box_detector = wx.StaticBox(self, -1,str("Edit Selected Detector"))
+
+                                                 ^^
+C:153:DetectorDialog._layout_orientation: Comma not followed by a space
+        self.orientation_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 20),
+style=0)
+                                                                               ^
+^
+C:195:DetectorDialog._layout_pixel_size: Comma not followed by a space
+        self.x_pixel_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), styl
+e=0)
+                                                                      ^^
+C:197:DetectorDialog._layout_pixel_size: Comma not followed by a space
+        self.y_pixel_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), styl
+e=0)
+                                                                      ^^
+C:199:DetectorDialog._layout_pixel_size: Comma not followed by a space
+        self.z_pixel_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), styl
+e=0)
+                                                                      ^^
+C:201:DetectorDialog._layout_pixel_size: Comma not followed by a space
+        self.pixel_size_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), s
+tyle=0)
+                                                                         ^^
+C:218:DetectorDialog._layout_slit_length: Comma not followed by a space
+        self.slit_length_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style
+=0)
+                                                                     ^^
+C:220:DetectorDialog._layout_slit_length: Comma not followed by a space
+        self.slit_length_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20),
+style=0)
+                                                                          ^^
+W:242:DetectorDialog._do_layout: Unused argument 'data'
+W:298:DetectorDialog.fill_detector_combox: Redefining name 'detector' from outer
+ scope (line 806)
+W:309:DetectorDialog.reset_detector_combobox: Redefining name 'detector' from ou
+ter scope (line 806)
+W:323:DetectorDialog.add_detector: Redefining name 'detector' from outer scope (
+line 806)
+W:316:DetectorDialog.add_detector: Unused argument 'event'
+W:338:DetectorDialog.remove_detector: Redefining name 'detector' from outer scop
+e (line 806)
+W:331:DetectorDialog.remove_detector: Unused argument 'event'
+C:359:DetectorDialog.enable_detector: Operator not followed by a space
+            detector_hint_txt = 'Detectors available: %s '%str(n_detector)
+                                                          ^
+W:370:DetectorDialog.set_detector: Redefining name 'detector' from outer scope (
+line 806)
+W:392:DetectorDialog.get_current_detector: Redefining name 'detector' from outer
+ scope (line 806)
+C:383:DetectorDialog.get_current_detector: Empty docstring
+W:400:DetectorDialog.set_values: Redefining name 'detector' from outer scope (li
+ne 806)
+C:409:DetectorDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:409:DetectorDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:409:DetectorDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:415:DetectorDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:415:DetectorDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:415:DetectorDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:421:DetectorDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:421:DetectorDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:421:DetectorDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:427:DetectorDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:427:DetectorDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{
+2,30}$)
+C:427:DetectorDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{
+2,30}$)
+W:433:DetectorDialog.set_values: Unused variable 'slit_length'
+W:453:DetectorDialog.on_change_instrument: Redefining name 'detector' from outer
+ scope (line 806)
+C:462:DetectorDialog.on_change_instrument: Operator not followed by a space
+            self._notes += "name from %s to %s \n"%(detector_name, name)
+                                                  ^
+W:472:DetectorDialog.on_change_distance: Redefining name 'detector' from outer s
+cope (line 806)
+C:484:DetectorDialog.on_change_distance: Operator not followed by a space
+                    self._notes += " %s to %s \n"%(detector.distance, distance)
+                                                 ^
+C:488:DetectorDialog.on_change_distance: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.distance, distance)
+                                         ^
+C:493:DetectorDialog.on_change_distance: Operator not followed by a space
+            self._notes += "%s to %s"%(detector.distance_unit, unit)
+                                     ^
+W:503:DetectorDialog.on_change_offset: Redefining name 'detector' from outer sco
+pe (line 806)
+C:515:DetectorDialog.on_change_offset: Operator not followed by a space
+                    self._notes += " %s to %s \n"%(detector.offset.x, x_offset)
+                                                 ^
+C:520:DetectorDialog.on_change_offset: Operator not followed by a space
+                self._notes += " from %s to %s"%(detector.offset.x, x_offset)
+                                               ^
+C:530:DetectorDialog.on_change_offset: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.offset.y, y_offset)
+                                                ^
+C:535:DetectorDialog.on_change_offset: Operator not followed by a space
+                self._notes += "offset from %s to %s"%(detector.offset.y\
+                                                     ^
+                                                         ,y_offset)
+C:546:DetectorDialog.on_change_offset: Operator not followed by a space
+                    self._notes += "offset from %s to %s \n"%(detector.offset.z,
+\
+                                                            ^
+                                                              z_offset)
+C:552:DetectorDialog.on_change_offset: Operator not followed by a space
+                self._notes += "offset from %s to %s"%(detector.offset.z, z_offs
+et)
+                                                     ^
+C:557:DetectorDialog.on_change_offset: Operator not followed by a space
+            self._notes += "unit from %s to %s"%(detector.offset_unit, unit)
+                                               ^
+R:499:DetectorDialog.on_change_offset: Too many branches (14/12)
+W:567:DetectorDialog.on_change_orientation: Redefining name 'detector' from oute
+r scope (line 806)
+C:579:DetectorDialog.on_change_orientation: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.orientation.x, x_orie
+ntation)
+                                                ^
+C:584:DetectorDialog.on_change_orientation: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.orientation.x, x_orientation
+)
+                                         ^
+C:594:DetectorDialog.on_change_orientation: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.orientation.y, y_orie
+ntation)
+                                                ^
+C:599:DetectorDialog.on_change_orientation: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.orientation.y, y_orientation
+)
+                                         ^
+C:609:DetectorDialog.on_change_orientation: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.orientation.z, z_orie
+ntation)
+                                                ^
+C:614:DetectorDialog.on_change_orientation: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.orientation.z, z_orientation
+)
+                                         ^
+C:619:DetectorDialog.on_change_orientation: Operator not followed by a space
+            self._notes += "%s to %s"%(detector.orientation_unit, unit)
+                                     ^
+R:563:DetectorDialog.on_change_orientation: Too many branches (14/12)
+W:630:DetectorDialog.on_change_beam_center: Redefining name 'detector' from oute
+r scope (line 806)
+C:642:DetectorDialog.on_change_beam_center: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.beam_center.x, x_beam
+_center)
+                                                ^
+C:647:DetectorDialog.on_change_beam_center: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.beam_center.x, x_beam_center
+)
+                                         ^
+C:657:DetectorDialog.on_change_beam_center: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.beam_center.y, y_beam
+_center)
+                                                ^
+C:662:DetectorDialog.on_change_beam_center: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.beam_center.y, y_beam_center
+)
+                                         ^
+C:672:DetectorDialog.on_change_beam_center: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.beam_center.z, z_beam
+_center)
+                                                ^
+C:677:DetectorDialog.on_change_beam_center: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.beam_center.z, z_beam_center
+)
+                                         ^
+C:682:DetectorDialog.on_change_beam_center: Operator not followed by a space
+            self._notes += "%s to %s"%(detector.beam_center_unit, unit)
+                                     ^
+R:625:DetectorDialog.on_change_beam_center: Too many branches (14/12)
+W:692:DetectorDialog.on_change_pixel_size: Redefining name 'detector' from outer
+ scope (line 806)
+C:703:DetectorDialog.on_change_pixel_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.pixel_size.x, x_pixel
+_size)
+                                                ^
+C:708:DetectorDialog.on_change_pixel_size: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.pixel_size.x, x_pixel_size)
+                                         ^
+C:718:DetectorDialog.on_change_pixel_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.pixel_size.y, y_pixel
+_size)
+                                                ^
+C:723:DetectorDialog.on_change_pixel_size: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.pixel_size.y, y_pixel_size)
+                                         ^
+C:733:DetectorDialog.on_change_pixel_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(detector.pixel_size.z, z_pixel
+_size)
+                                                ^
+C:738:DetectorDialog.on_change_pixel_size: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.pixel_size.z, z_pixel_size)
+                                         ^
+C:743:DetectorDialog.on_change_pixel_size: Operator not followed by a space
+            self._notes += "%s to %s"%(detector.pixel_size_unit, unit)
+                                     ^
+R:688:DetectorDialog.on_change_pixel_size: Too many branches (14/12)
+W:753:DetectorDialog.on_change_slit_length: Redefining name 'detector' from oute
+r scope (line 806)
+C:765:DetectorDialog.on_change_slit_length: Operator not followed by a space
+                    self._notes += " %s to %s \n"%(detector.slit_length, slit_le
+ngth)
+                                                 ^
+C:769:DetectorDialog.on_change_slit_length: Operator not followed by a space
+                self._notes += "%s to %s"%(detector.slit_length, slit_length)
+                                         ^
+C:774:DetectorDialog.on_change_slit_length: Operator not followed by a space
+            self._notes += "%s to %s"%(detector.slit_length_unit_tcl, unit)
+                                     ^
+W:780:DetectorDialog.on_click_cancel: Unused argument 'event'
+W:801:DetectorDialog.on_click_apply: Redefining name 'detector' from outer scope
+ (line 806)
+W:789:DetectorDialog.on_click_apply: Unused argument 'event'
+W:801:DetectorDialog.on_click_apply: Unused variable 'detector'
+R: 20:DetectorDialog: Too many public methods (304/20)
+W: 42:DetectorDialog._define_structure: Attribute 'box_detector' defined outside
+ __init__
+W:220:DetectorDialog._layout_slit_length: Attribute 'slit_length_unit_tcl' defin
+ed outside __init__
+W:236:DetectorDialog._layout_button: Attribute 'bt_close' defined outside __init
+__
+W: 58:DetectorDialog._define_structure: Attribute 'pixel_sizer' defined outside
+__init__
+W: 46:DetectorDialog._define_structure: Attribute 'detector_sizer' defined outsi
+de __init__
+W:151:DetectorDialog._layout_orientation: Attribute 'z_orientation_tcl' defined
+outside __init__
+W:175:DetectorDialog._layout_beam_center: Attribute 'z_beam_center_tcl' defined
+outside __init__
+W:110:DetectorDialog._layout_distance: Attribute 'distance_unit_tcl' defined out
+side __init__
+W:199:DetectorDialog._layout_pixel_size: Attribute 'z_pixel_size_tcl' defined ou
+tside __init__
+W: 59:DetectorDialog._define_structure: Attribute 'slit_sizer' defined outside _
+_init__
+W: 52:DetectorDialog._define_structure: Attribute 'detector_hint_sizer' defined
+outside __init__
+W:127:DetectorDialog._layout_offset: Attribute 'z_offset_tcl' defined outside __
+init__
+W:177:DetectorDialog._layout_beam_center: Attribute 'beam_center_unit_tcl' defin
+ed outside __init__
+W: 60:DetectorDialog._define_structure: Attribute 'button_sizer' defined outside
+ __init__
+W:108:DetectorDialog._layout_distance: Attribute 'distance_tcl' defined outside
+__init__
+W:129:DetectorDialog._layout_offset: Attribute 'offset_unit_tcl' defined outside
+ __init__
+W:201:DetectorDialog._layout_pixel_size: Attribute 'pixel_size_unit_tcl' defined
+ outside __init__
+W:230:DetectorDialog._layout_button: Attribute 'bt_apply' defined outside __init
+__
+W:153:DetectorDialog._layout_orientation: Attribute 'orientation_unit_tcl' defin
+ed outside __init__
+W:197:DetectorDialog._layout_pixel_size: Attribute 'y_pixel_size_tcl' defined ou
+tside __init__
+W:195:DetectorDialog._layout_pixel_size: Attribute 'x_pixel_size_tcl' defined ou
+tside __init__
+W:171:DetectorDialog._layout_beam_center: Attribute 'x_beam_center_tcl' defined
+outside __init__
+W:125:DetectorDialog._layout_offset: Attribute 'y_offset_tcl' defined outside __
+init__
+W:147:DetectorDialog._layout_orientation: Attribute 'x_orientation_tcl' defined
+outside __init__
+W:173:DetectorDialog._layout_beam_center: Attribute 'y_beam_center_tcl' defined
+outside __init__
+W: 55:DetectorDialog._define_structure: Attribute 'offset_sizer' defined outside
+ __init__
+W:218:DetectorDialog._layout_slit_length: Attribute 'slit_length_tcl' defined ou
+tside __init__
+W: 57:DetectorDialog._define_structure: Attribute 'beam_sizer' defined outside _
+_init__
+W:233:DetectorDialog._layout_button: Attribute 'bt_cancel' defined outside __ini
+t__
+W: 53:DetectorDialog._define_structure: Attribute 'instrument_sizer' defined out
+side __init__
+W: 43:DetectorDialog._define_structure: Attribute 'boxsizer_detector' defined ou
+tside __init__
+W: 56:DetectorDialog._define_structure: Attribute 'orientation_sizer' defined ou
+tside __init__
+W:149:DetectorDialog._layout_orientation: Attribute 'y_orientation_tcl' defined
+outside __init__
+W: 51:DetectorDialog._define_structure: Attribute 'detector_button_sizer' define
+d outside __init__
+W: 73:DetectorDialog._layout_detector: Attribute 'bt_add_detector' defined outsi
+de __init__
+W: 41:DetectorDialog._define_structure: Attribute 'main_sizer' defined outside _
+_init__
+W: 69:DetectorDialog._layout_detector: Attribute 'detector_cbox' defined outside
+ __init__
+W: 86:DetectorDialog._layout_detector: Attribute 'detector_txt' defined outside
+__init__
+W:100:DetectorDialog._layout_instrument_sizer: Attribute 'instrument_name_tcl' d
+efined outside __init__
+W:123:DetectorDialog._layout_offset: Attribute 'x_offset_tcl' defined outside __
+init__
+W: 77:DetectorDialog._layout_detector: Attribute 'bt_remove_detector' defined ou
+tside __init__
+W: 54:DetectorDialog._define_structure: Attribute 'distance_sizer' defined outsi
+de __init__
+C:805: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:806: Invalid name "detector" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:807: Invalid name "dlg" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+************* Module sans.perspectives.calculator.help_panel
+C: 12: Line too long (99/80)
+C: 13: Line too long (88/80)
+C: 14: Line too long (91/80)
+C: 15: Line too long (86/80)
+C: 17: Line too long (86/80)
+C: 18: Line too long (86/80)
+C: 19: Line too long (83/80)
+C: 20: Line too long (90/80)
+C: 21: Line too long (99/80)
+C: 23: Line too long (95/80)
+C: 24: Line too long (93/80)
+C: 26: Line too long (101/80)
+C: 53: Line too long (85/80)
+W:  7:help: Redefining built-in 'help'
+C:  1: Missing docstring
+C: 30:HelpDialog: Missing docstring
+W: 31:HelpDialog.__init__: Redefining built-in 'id'
+C: 31:HelpDialog.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 31:HelpDialog.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 41:HelpDialog.__init__: Comma not followed by a space
+        label_explain = wx.StaticText(self, -1, explanation, size=(350,320))
+                                                                      ^^
+C: 49:HelpDialog.__init__: Invalid name "button_OK" (should match [a-z_][a-z0-9_
+]{2,30}$)
+R: 30:HelpDialog: Too many public methods (283/20)
+C: 62:HelpWindow: Missing docstring
+W: 63:HelpWindow.__init__: Redefining built-in 'id'
+C: 63:HelpWindow.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 63:HelpWindow.__init__: Invalid name "pageToOpen" (should match [a-z_][a-z0-9
+_]{2,30}$)
+R: 63:HelpWindow.__init__: Too many local variables (21/15)
+C: 63:HelpWindow.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 63:HelpWindow.__init__: Invalid name "pageToOpen" (should match [a-z_][a-z0-9
+_]{2,30}$)
+W: 67:HelpWindow.__init__: String statement has no effect
+C: 71:HelpWindow.__init__: Comma not followed by a space
+        lpanel = wx.Panel(splitter, -1,style=wx.BORDER_SUNKEN)
+                                      ^^
+C: 78:HelpWindow.__init__: Invalid name "st" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 86:HelpWindow.__init__: Operator not preceded by a space
+        vboxl= wx.BoxSizer(wx.VERTICAL)
+             ^
+C:106:HelpWindow.__init__: Operator not preceded by a space
+        page1="""<html>
+             ^
+
+
+
+            </html>"""
+C:112:HelpWindow.__init__: Operator not preceded by a space
+        page="""<html>
+            ^
+
+
+
+
+
+
+            </html>"""
+C:122:HelpWindow.__init__: Comma not followed by a space
+        self.lhelp.Bind(wx.html.EVT_HTML_LINK_CLICKED,self.OnLinkClicked )
+                                                     ^^
+C:124:HelpWindow.__init__: Comma not followed by a space
+        vbox.Add(self.rhelp,1, wx.EXPAND)
+                           ^^
+C:131:HelpWindow.__init__: Comma not followed by a space
+        vbox1.Add(splitter,1,wx.EXPAND)
+                          ^^
+W: 63:HelpWindow.__init__: Unused argument 'pageToOpen'
+C:140:HelpWindow.OnLinkClicked: Invalid name "OnLinkClicked" (should match [a-z_
+][a-z0-9_]{2,30}$)
+C:145:HelpWindow.OnLinkClicked: Operator not preceded by a space
+        link= event.GetLinkInfo().GetHref()
+            ^
+C:146:HelpWindow.OnLinkClicked: Comma not followed by a space
+        link = os.path.join(self.path,link)
+                                     ^^
+R: 62:HelpWindow: Too many public methods (288/20)
+C:149:ViewApp: Missing docstring
+C:150:ViewApp.OnInit: Invalid name "OnInit" (should match [a-z_][a-z0-9_]{2,30}$
+)
+C:150:ViewApp.OnInit: Missing docstring
+R:149:ViewApp: Too many public methods (66/20)
+C:159: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+************* Module sans.perspectives.calculator.load_thread
+C:  1: Missing docstring
+F:  6: Unable to import 'data_util.calcthread'
+R: 14:DataReader.__init__: Too many arguments (6/5)
+E: 46:DataReader.compute: Instance of 'DataReader' has no 'complete' member
+W: 45:DataReader.compute: Unused variable 'elapsed'
+W:  3: Unused import sys
+************* Module sans.perspectives.calculator.sample_editor
+C: 57: Line too long (87/80)
+C: 76: Line too long (83/80)
+C: 82: Line too long (83/80)
+C: 91: Line too long (87/80)
+C: 92: Line too long (85/80)
+C:101: Line too long (87/80)
+C:105: Line too long (83/80)
+C:107: Line too long (85/80)
+C:108: Line too long (82/80)
+C:117: Line too long (83/80)
+C:119: Line too long (83/80)
+C:121: Line too long (84/80)
+C:123: Line too long (87/80)
+C:140: Line too long (86/80)
+C:142: Line too long (86/80)
+C:144: Line too long (87/80)
+C:146: Line too long (90/80)
+C:147: Line too long (83/80)
+C:155: Line too long (83/80)
+C:277: Line too long (83/80)
+C:349: Line too long (83/80)
+C:380: Line too long (86/80)
+C:395: Line too long (86/80)
+C:410: Line too long (86/80)
+C:440: Line too long (85/80)
+C:450: Line too long (92/80)
+C:455: Line too long (85/80)
+C:465: Line too long (92/80)
+C:470: Line too long (85/80)
+W:515: Bad indentation. Found 13 spaces, expected 12
+C:  1: Missing docstring
+R: 19:SampleDialog: Too many instance attributes (37/7)
+C: 19:SampleDialog: Missing docstring
+W: 20:SampleDialog.__init__: Redefining name 'sample' from outer scope (line 521
+)
+R: 20:SampleDialog.__init__: Too many arguments (6/5)
+C: 38:SampleDialog._define_structure: Comma not followed by a space
+        self.box_sample = wx.StaticBox(self, -1,str("Sample"))
+                                               ^^
+C: 76:SampleDialog._layout_thickness: Comma not followed by a space
+        self.thickness_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 20),style=0
+)
+                                                                        ^^
+C: 91:SampleDialog._layout_transmission: Comma not followed by a space
+        self.transmission_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 20),styl
+e=0)
+                                                                           ^^
+W: 89:SampleDialog._layout_transmission: Unused variable 'transmission'
+C:117:SampleDialog._layout_position: Comma not followed by a space
+        self.x_position_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=
+0)
+                                                                    ^^
+C:119:SampleDialog._layout_position: Comma not followed by a space
+        self.y_position_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=
+0)
+                                                                    ^^
+C:121:SampleDialog._layout_position: Comma not followed by a space
+        self.z_position_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=
+0)
+                                                                    ^^
+C:123:SampleDialog._layout_position: Comma not followed by a space
+        self.position_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), sty
+le=0)
+                                                                       ^^
+C:140:SampleDialog._layout_orientation: Comma not followed by a space
+        self.x_orientation_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), sty
+le=0)
+                                                                       ^^
+C:142:SampleDialog._layout_orientation: Comma not followed by a space
+        self.y_orientation_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), sty
+le=0)
+                                                                       ^^
+C:144:SampleDialog._layout_orientation: Comma not followed by a space
+        self.z_orientation_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), sty
+le=0)
+                                                                       ^^
+C:146:SampleDialog._layout_orientation: Comma not followed by a space
+        self.orientation_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20),
+style=0)
+                                                                          ^^
+C:164:SampleDialog._layout_details: Comma not followed by a space
+        self.details_tcl = wx.TextCtrl(self, -1,size=(_BOX_WIDTH*5,_BOX_WIDTH),
+                                               ^^
+                                       style=wx.TE_MULTILINE | wx.HSCROLL)
+W:162:SampleDialog._layout_details: Unused variable 'details'
+W:185:SampleDialog._do_layout: Unused argument 'data'
+W:257:SampleDialog.set_values: Redefining name 'sample' from outer scope (line 5
+21)
+C:271:SampleDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:271:SampleDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:271:SampleDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:277:SampleDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:277:SampleDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:277:SampleDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{2,
+30}$)
+W:285:SampleDialog.set_details: Redefining name 'sample' from outer scope (line
+521)
+C:318:SampleDialog.on_change_name: Operator not followed by a space
+            self._notes += "name from %s to %s \n"%(self._sample.name, name)
+                                                  ^
+W:326:SampleDialog.on_change_id: Redefining built-in 'id'
+C:326:SampleDialog.on_change_id: Invalid name "id" (should match [a-z_][a-z0-9_]
+{2,30}$)
+C:329:SampleDialog.on_change_id: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._sample.ID, id)
+                                     ^
+C:339:SampleDialog.on_change_thickness: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._sample.thickness, thickness)
+                                     ^
+C:349:SampleDialog.on_change_transmission: Operator not followed by a space
+            self._notes += " %s to %s \n"%(self._sample.transmission, transmissi
+on)
+                                         ^
+C:360:SampleDialog.on_change_temperature: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._sample.temperature, temperature)
+                                     ^
+C:365:SampleDialog.on_change_temperature: Operator not followed by a space
+            self._notes += "%s to %s"%(self._sample.temperature_unit, unit)
+                                     ^
+C:380:SampleDialog.on_change_position: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._sample.position.x, x_pos
+ition)
+                                                ^
+C:385:SampleDialog.on_change_position: Operator not followed by a space
+                self._notes += "%s to %s"%(self._sample.position.x, x_position)
+                                         ^
+C:395:SampleDialog.on_change_position: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._sample.position.y, y_pos
+ition)
+                                                ^
+C:400:SampleDialog.on_change_position: Operator not followed by a space
+                self._notes += "%s to %s"%(self._sample.position.y, y_position)
+                                         ^
+C:410:SampleDialog.on_change_position: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._sample.position.z, z_pos
+ition)
+                                                ^
+C:415:SampleDialog.on_change_position: Operator not followed by a space
+                self._notes += "%s to %s"%(self._sample.position.z, z_position)
+                                         ^
+C:420:SampleDialog.on_change_position: Operator not followed by a space
+            self._notes += "%s to %s"%(self._sample.position_unit, unit)
+                                     ^
+R:368:SampleDialog.on_change_position: Too many branches (13/12)
+C:434:SampleDialog.on_change_orientation: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._sample.orientation.x,
+                                                ^
+                                                   x_orientation)
+C:440:SampleDialog.on_change_orientation: Operator not followed by a space
+                self._notes += "%s to %s"%(self._sample.orientation.x, x_orienta
+tion)
+                                         ^
+C:450:SampleDialog.on_change_orientation: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._sample.orientation.y, y_
+orientation)
+                                                ^
+C:455:SampleDialog.on_change_orientation: Operator not followed by a space
+                self._notes += "%s to %s"%(self._sample.orientation.y, y_orienta
+tion)
+                                         ^
+C:465:SampleDialog.on_change_orientation: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._sample.orientation.z, z_
+orientation)
+                                                ^
+C:470:SampleDialog.on_change_orientation: Operator not followed by a space
+                self._notes += "%s to %s"%(self._sample.orientation.z, z_orienta
+tion)
+                                         ^
+C:475:SampleDialog.on_change_orientation: Operator not followed by a space
+            self._notes += "%s to %s"%(self._sample.orientation_unit, unit)
+                                     ^
+R:422:SampleDialog.on_change_orientation: Too many branches (13/12)
+C:489:SampleDialog.on_change_details: Operator not followed by a space
+                    self._notes += " %s to %s \n"%(msg, details)
+                                                 ^
+W:492:SampleDialog.on_click_apply: Unused argument 'event'
+W:508:SampleDialog.on_click_cancel: Unused argument 'event'
+R: 19:SampleDialog: Too many public methods (299/20)
+W: 38:SampleDialog._define_structure: Attribute 'box_sample' defined outside __i
+nit__
+W:179:SampleDialog._layout_button: Attribute 'bt_close' defined outside __init__
+
+W: 48:SampleDialog._define_structure: Attribute 'details_sizer' defined outside
+__init__
+W:144:SampleDialog._layout_orientation: Attribute 'z_orientation_tcl' defined ou
+tside __init__
+W:117:SampleDialog._layout_position: Attribute 'x_position_tcl' defined outside
+__init__
+W: 57:SampleDialog._layout_name: Attribute 'sample_name_tcl' defined outside __i
+nit__
+W: 49:SampleDialog._define_structure: Attribute 'button_sizer' defined outside _
+_init__
+W: 46:SampleDialog._define_structure: Attribute 'position_sizer' defined outside
+ __init__
+W:101:SampleDialog._layout_temperature: Attribute 'temperature_tcl' defined outs
+ide __init__
+W:103:SampleDialog._layout_temperature: Attribute 'temperature_unit_tcl' defined
+ outside __init__
+W: 44:SampleDialog._define_structure: Attribute 'transmission_sizer' defined out
+side __init__
+W:146:SampleDialog._layout_orientation: Attribute 'orientation_unit_tcl' defined
+ outside __init__
+W:164:SampleDialog._layout_details: Attribute 'details_tcl' defined outside __in
+it__
+W: 45:SampleDialog._define_structure: Attribute 'temperature_sizer' defined outs
+ide __init__
+W:140:SampleDialog._layout_orientation: Attribute 'x_orientation_tcl' defined ou
+tside __init__
+W:176:SampleDialog._layout_button: Attribute 'bt_cancel' defined outside __init_
+_
+W: 76:SampleDialog._layout_thickness: Attribute 'thickness_tcl' defined outside
+__init__
+W: 91:SampleDialog._layout_transmission: Attribute 'transmission_tcl' defined ou
+tside __init__
+W: 41:SampleDialog._define_structure: Attribute 'name_sizer' defined outside __i
+nit__
+W:142:SampleDialog._layout_orientation: Attribute 'y_orientation_tcl' defined ou
+tside __init__
+W:123:SampleDialog._layout_position: Attribute 'position_unit_tcl' defined outsi
+de __init__
+W: 39:SampleDialog._define_structure: Attribute 'boxsizer_sample' defined outsid
+e __init__
+W: 37:SampleDialog._define_structure: Attribute 'main_sizer' defined outside __i
+nit__
+W: 43:SampleDialog._define_structure: Attribute 'thickness_sizer' defined outsid
+e __init__
+W:173:SampleDialog._layout_button: Attribute 'bt_apply' defined outside __init__
+
+W:119:SampleDialog._layout_position: Attribute 'y_position_tcl' defined outside
+__init__
+W: 66:SampleDialog._layout_id: Attribute 'id_tcl' defined outside __init__
+W: 78:SampleDialog._layout_thickness: Attribute 'thickness_unit_tcl' defined out
+side __init__
+W:121:SampleDialog._layout_position: Attribute 'z_position_tcl' defined outside
+__init__
+W: 42:SampleDialog._define_structure: Attribute 'id_sizer' defined outside __ini
+t__
+W: 47:SampleDialog._define_structure: Attribute 'orientation_sizer' defined outs
+ide __init__
+C:517: Operator not followed by a space
+if __name__ =="__main__":
+            ^^
+C:519: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:521: Invalid name "sample" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:522: Invalid name "dlg" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+************* Module sans.perspectives.calculator.sld_panel
+C:337: Line too long (83/80)
+C:357: Line too long (84/80)
+C:358: Line too long (91/80)
+C:361: Line too long (88/80)
+C:364: Line too long (87/80)
+W:374: Bad indentation. Found 18 spaces, expected 16
+W:375: Bad indentation. Found 18 spaces, expected 16
+C:383: Line too long (83/80)
+R: 35:SldPanel: Too many instance attributes (17/7)
+W: 45:SldPanel.__init__: Redefining built-in 'id'
+C: 45:SldPanel.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}$)
+
+C: 45:SldPanel.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}$)
+
+W:248:SldPanel._do_layout: Redefining built-in 'id'
+R: 57:SldPanel._do_layout: Too many local variables (39/15)
+C: 64:SldPanel._do_layout: Operator not followed by a space
+        unit_cm1 ='[1/cm]'
+                 ^
+C: 65:SldPanel._do_layout: Operator not followed by a space
+        unit_cm ='[cm]'
+                ^
+C: 66:SldPanel._do_layout: Comma not followed by a space
+        sizer_input = wx.GridBagSizer(5,5)
+                                       ^^
+C: 67:SldPanel._do_layout: Comma not followed by a space
+        sizer_output = wx.GridBagSizer(5,5)
+                                        ^^
+C: 75:SldPanel._do_layout: Comma not followed by a space
+        boxsizer1.SetMinSize((_STATICBOX_WIDTH,-1))
+                                              ^^
+C: 78:SldPanel._do_layout: Comma not followed by a space
+        self.compound_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                  ^^
+C: 80:SldPanel._do_layout: Comma not followed by a space
+        self.density_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                 ^^
+C: 83:SldPanel._do_layout: Comma not followed by a space
+        self.wavelength_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                    ^^
+C: 86:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 87:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 88:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(compound_txt,(iy, ix),(1,1),\
+                                    ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C: 90:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C: 90:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 91:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(self.compound_ctl,(iy, ix),(1,1),\
+                                         ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C: 93:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 94:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 95:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(density_txt,(iy, ix),(1,1),\
+                                   ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C: 97:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C: 98:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(self.density_ctl, (iy, ix), (1,1),\
+                                                      ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:100:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:100:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:101:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(unit_density_txt,(iy, ix),(1,1),\
+                                        ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:103:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:104:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:105:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(wavelength_txt, (iy, ix),(1,1),\
+                                                ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C:107:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:108:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(self.wavelength_ctl,(iy, ix),(1,1),\
+                                           ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:110:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:111:SldPanel._do_layout: Comma not followed by a space
+        sizer_input.Add(unit_a_txt,(iy, ix),(1,1),\
+                                  ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:114:SldPanel._do_layout: Comma not followed by a space
+        sizer1.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10)
+                            ^^
+C:118:SldPanel._do_layout: Comma not followed by a space
+        boxsizer2.SetMinSize((_STATICBOX_WIDTH,-1))
+                                              ^^
+C:122:SldPanel._do_layout: Comma not followed by a space
+        self.neutron_sld_reel_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                          ^^
+C:125:SldPanel._do_layout: Comma not followed by a space
+        self.neutron_sld_im_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                        ^^
+C:131:SldPanel._do_layout: Comma not followed by a space
+        self.cu_ka_sld_reel_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                        ^^
+C:134:SldPanel._do_layout: Comma not followed by a space
+        self.cu_ka_sld_im_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                      ^^
+C:140:SldPanel._do_layout: Comma not followed by a space
+        self.mo_ka_sld_reel_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                        ^^
+C:143:SldPanel._do_layout: Comma not followed by a space
+        self.mo_ka_sld_im_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                      ^^
+C:149:SldPanel._do_layout: Comma not followed by a space
+        self.neutron_inc_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                     ^^
+C:155:SldPanel._do_layout: Comma not followed by a space
+        self.neutron_abs_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                     ^^
+C:161:SldPanel._do_layout: Comma not followed by a space
+        self.neutron_length_ctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+                                                                        ^^
+C:166:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:167:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:168:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(neutron_sld_txt,(iy, ix),(1,1),
+                                        ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C:170:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:171:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(self.neutron_sld_reel_ctl,(iy, ix),(1,1),
+                                                  ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:173:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:176:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:176:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:179:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:179:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:182:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:183:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:184:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(cu_ka_sld_txt,(iy, ix),(1,1),
+                                      ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C:186:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:186:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:187:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(self.cu_ka_sld_reel_ctl,(iy, ix),(1,1),
+                                                ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:189:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:189:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:192:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:195:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:198:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:199:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:200:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(mo_ka_sld_txt,(iy, ix),(1,1),
+                                      ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C:202:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:202:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:203:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(self.mo_ka_sld_reel_ctl,(iy, ix),(1,1),
+                                                ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:205:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:205:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:208:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:211:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:211:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:214:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:215:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:216:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(neutron_inc_txt,(iy, ix),(1,1),
+                                        ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C:218:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:219:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(self.neutron_inc_ctl,(iy, ix),(1,1),
+                                             ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:221:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:222:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(neutron_inc_units_txt,(iy, ix),(1,1),
+                                              ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:224:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:225:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:226:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(neutron_abs_txt, (iy, ix), (1,1),
+                                                      ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C:228:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:229:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(self.neutron_abs_ctl, (iy, ix), (1,1),
+                                                           ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:231:SldPanel._do_layout: Operator not followed by a space
+        ix +=2
+           ^^
+C:231:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:232:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(neutron_abs_units_txt, (iy, ix), (1,1),
+                                                            ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:234:SldPanel._do_layout: Invalid name "iy" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:235:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:236:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(neutron_length_txt, (iy, ix), (1,1),
+                                                         ^^
+                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+C:238:SldPanel._do_layout: Operator not followed by a space
+        ix +=1
+           ^^
+C:238:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:239:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(self.neutron_length_ctl, (iy, ix), (1,1),
+                                                              ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:241:SldPanel._do_layout: Invalid name "ix" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:242:SldPanel._do_layout: Comma not followed by a space
+        sizer_output.Add(neutron_length_units_txt, (iy, ix), (1,1),
+                                                               ^^
+                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+C:245:SldPanel._do_layout: Comma not followed by a space
+        sizer2.Add(boxsizer2,0, wx.EXPAND|wx.ALL, 10)
+                            ^^
+C:248:SldPanel._do_layout: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}
+$)
+C:254:SldPanel._do_layout: Comma not followed by a space
+        sizer_button.Add(button_calculate, 0, wx.RIGHT|wx.ADJUST_MINSIZE,20)
+                                                                        ^^
+R: 57:SldPanel._do_layout: Too many statements (157/50)
+E:277:SldPanel.calculate_xray_sld: Undefined variable 'user_formula'
+E:292:SldPanel.check_inputs: Instance of 'float' has no 'lstrip' member (but som
+e types could not be inferred)
+R:312:SldPanel.calculate_sld_helper: Method could be a function
+C:328:SldPanel.calculateSld: Invalid name "calculateSld" (should match [a-z_][a-
+z0-9_]{2,30}$)
+W:373:SldPanel.calculateSld: No exception type(s) specified
+W:339:SldPanel.calculateSld: No exception type(s) specified
+C:340:SldPanel.calculateSld: Operator not followed by a space
+                        msg = "SLD Calculator: %s" %(sys.exc_value)
+                                                   ^
+C:347:SldPanel.calculateSld: Comma not followed by a space
+                (sld_real, sld_im, sld_inc), (coh,absorp,incoh), \
+                                                 ^^
+                            length = neutron_scattering(self.compound,
+                                       self.density, self.wavelength)
+C:374:SldPanel.calculateSld: Operator not followed by a space
+                  msg = "SLD Calculator: %s"%(sys.exc_value)
+                                            ^
+W:347:SldPanel.calculateSld: Unused variable 'sld_inc'
+W:347:SldPanel.calculateSld: Unused variable 'coh'
+W:328:SldPanel.calculateSld: Unused argument 'event'
+R: 35:SldPanel: Too many public methods (249/20)
+W:143:SldPanel._do_layout: Attribute 'mo_ka_sld_im_ctl' defined outside __init__
+
+W:140:SldPanel._do_layout: Attribute 'mo_ka_sld_reel_ctl' defined outside __init
+__
+W:131:SldPanel._do_layout: Attribute 'cu_ka_sld_reel_ctl' defined outside __init
+__
+W:155:SldPanel._do_layout: Attribute 'neutron_abs_ctl' defined outside __init__
+W:286:SldPanel.check_inputs: Attribute 'density' defined outside __init__
+W:122:SldPanel._do_layout: Attribute 'neutron_sld_reel_ctl' defined outside __in
+it__
+W:301:SldPanel.check_inputs: Attribute 'compound' defined outside __init__
+W:134:SldPanel._do_layout: Attribute 'cu_ka_sld_im_ctl' defined outside __init__
+
+W: 80:SldPanel._do_layout: Attribute 'density_ctl' defined outside __init__
+W:337:SldPanel.calculateSld: Attribute 'sld_formula' defined outside __init__
+W: 78:SldPanel._do_layout: Attribute 'compound_ctl' defined outside __init__
+W:161:SldPanel._do_layout: Attribute 'neutron_length_ctl' defined outside __init
+__
+W: 83:SldPanel._do_layout: Attribute 'wavelength_ctl' defined outside __init__
+W:125:SldPanel._do_layout: Attribute 'neutron_sld_im_ctl' defined outside __init
+__
+W:149:SldPanel._do_layout: Attribute 'neutron_inc_ctl' defined outside __init__
+C:381:SldWindow: Missing docstring
+W:382:SldWindow.__init__: Redefining built-in 'id'
+C:382:SldWindow.__init__: Comma not followed by a space
+    def __init__(self, parent=None, id=1, title="SLD Calculator",base=None):
+                                                                ^^
+C:382:SldWindow.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}$
+)
+C:382:SldWindow.__init__: Invalid name "id" (should match [a-z_][a-z0-9_]{2,30}$
+)
+R:381:SldWindow: Too many public methods (287/20)
+C:389:ViewApp: Missing docstring
+C:390:ViewApp.OnInit: Invalid name "OnInit" (should match [a-z_][a-z0-9_]{2,30}$
+)
+C:390:ViewApp.OnInit: Missing docstring
+R:389:ViewApp: Too many public methods (66/20)
+C:399: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 14: Unused import periodictable
+W: 17: Unused import avogadro_number
+************* Module sans.perspectives.calculator.slit_length_calculator_panel
+C: 89: Line too long (86/80)
+C: 93: Line too long (81/80)
+C: 99: Line too long (81/80)
+C:147: Line too long (82/80)
+C:179: Line too long (81/80)
+C:189: Line too long (82/80)
+C:200: Line too long (82/80)
+W:208: Bad indentation. Found 17 spaces, expected 16
+W:209: Bad indentation. Found 17 spaces, expected 16
+C:217: Line too long (82/80)
+C:229: Line too long (83/80)
+W: 18: Relative import 'calculator_widgets', should be 'sans.perspectives.calcul
+ator.calculator_widgets'
+R: 31:SlitLengthCalculatorPanel: Too many instance attributes (16/7)
+W: 42:SlitLengthCalculatorPanel.__init__: Redefining built-in 'id'
+C: 42:SlitLengthCalculatorPanel.__init__: Invalid name "id" (should match [a-z_]
+[a-z0-9_]{2,30}$)
+C: 42:SlitLengthCalculatorPanel.__init__: Invalid name "id" (should match [a-z_]
+[a-z0-9_]{2,30}$)
+C: 59:SlitLengthCalculatorPanel._define_structure: Comma not followed by a space
+
+        self.box_source = wx.StaticBox(self, -1,str("Slit Size Calculator"))
+                                               ^^
+W: 76:SlitLengthCalculatorPanel._layout_data_name: Redefining built-in 'id'
+C: 72:SlitLengthCalculatorPanel._layout_data_name: Comma not followed by a space
+
+        self.data_name_tcl = OutputTextCtrl(self, -1, size=(_BOX_WIDTH*4,-1))
+                                                                        ^^
+C: 76:SlitLengthCalculatorPanel._layout_data_name: Invalid name "id" (should mat
+ch [a-z_][a-z0-9_]{2,30}$)
+C: 89:SlitLengthCalculatorPanel._layout_slit_size: Comma not followed by a space
+
+        self.slit_size_tcl = InterActiveOutputTextCtrl(self, -1, size=(_BOX_WIDT
+H,-1))
+
+ ^^
+C: 93:SlitLengthCalculatorPanel._layout_slit_size: Comma not followed by a space
+
+        self.slit_size_unit_tcl = OutputTextCtrl(self, -1, size=(_BOX_WIDTH,-1))
+
+                                                                           ^^
+C:139:SlitLengthCalculatorPanel.choose_data_file: Missing docstring
+C:147:SlitLengthCalculatorPanel.choose_data_file: Comma not followed by a space
+        dlg = wx.FileDialog(self, "Choose a file", location,"", wildcard, wx.OPE
+N)
+                                                           ^^
+W:141:SlitLengthCalculatorPanel.choose_data_file: Unused variable 'filename'
+W:155:SlitLengthCalculatorPanel.on_close: Unused argument 'event'
+W:186:SlitLengthCalculatorPanel.on_load_data: No exception type(s) specified
+W:174:SlitLengthCalculatorPanel.on_load_data: Relative import 'load_thread', sho
+uld be 'sans.perspectives.calculator.load_thread'
+E:176:SlitLengthCalculatorPanel.on_load_data: Instance of 'DataReader' has no 'i
+srunning' member
+E:177:SlitLengthCalculatorPanel.on_load_data: Instance of 'DataReader' has no 's
+top' member
+E:184:SlitLengthCalculatorPanel.on_load_data: Instance of 'DataReader' has no 'q
+ueue' member
+C:188:SlitLengthCalculatorPanel.on_load_data: Operator not followed by a space
+            msg = "Slit Length Calculator: %s"%(sys.exc_value)
+                                              ^
+W:161:SlitLengthCalculatorPanel.on_load_data: Unused argument 'event'
+W:214:SlitLengthCalculatorPanel.complete_loading: No exception type(s) specified
+
+C:205:SlitLengthCalculatorPanel.complete_loading: Invalid name "x" (should match
+ [a-z_][a-z0-9_]{2,30}$)
+C:206:SlitLengthCalculatorPanel.complete_loading: Invalid name "y" (should match
+ [a-z_][a-z0-9_]{2,30}$)
+C:216:SlitLengthCalculatorPanel.complete_loading: Operator not followed by a spa
+ce
+            msg = "Slit Size Calculator: %s"%(sys.exc_value)
+                                            ^
+W:192:SlitLengthCalculatorPanel.complete_loading: Unused argument 'filename'
+R: 31:SlitLengthCalculatorPanel: Too many public methods (249/20)
+W: 72:SlitLengthCalculatorPanel._layout_data_name: Attribute 'data_name_tcl' def
+ined outside __init__
+W: 89:SlitLengthCalculatorPanel._layout_slit_size: Attribute 'slit_size_tcl' def
+ined outside __init__
+W: 62:SlitLengthCalculatorPanel._define_structure: Attribute 'data_name_sizer' d
+efined outside __init__
+W:106:SlitLengthCalculatorPanel._layout_hint: Attribute 'hint_txt' defined outsi
+de __init__
+W: 63:SlitLengthCalculatorPanel._define_structure: Attribute 'slit_size_sizer' d
+efined outside __init__
+W: 93:SlitLengthCalculatorPanel._layout_slit_size: Attribute 'slit_size_unit_tcl
+' defined outside __init__
+W: 64:SlitLengthCalculatorPanel._define_structure: Attribute 'hint_sizer' define
+d outside __init__
+W: 77:SlitLengthCalculatorPanel._layout_data_name: Attribute 'browse_button' def
+ined outside __init__
+W:113:SlitLengthCalculatorPanel._layout_button: Attribute 'bt_close' defined out
+side __init__
+W: 58:SlitLengthCalculatorPanel._define_structure: Attribute 'main_sizer' define
+d outside __init__
+W: 60:SlitLengthCalculatorPanel._define_structure: Attribute 'boxsizer_source' d
+efined outside __init__
+W: 65:SlitLengthCalculatorPanel._define_structure: Attribute 'button_sizer' defi
+ned outside __init__
+W: 59:SlitLengthCalculatorPanel._define_structure: Attribute 'box_source' define
+d outside __init__
+C:227:SlitLengthCalculatorWindow: Missing docstring
+W:228:SlitLengthCalculatorWindow.__init__: Redefining built-in 'id'
+C:228:SlitLengthCalculatorWindow.__init__: Invalid name "id" (should match [a-z_
+][a-z0-9_]{2,30}$)
+C:228:SlitLengthCalculatorWindow.__init__: Invalid name "id" (should match [a-z_
+][a-z0-9_]{2,30}$)
+C:229:SlitLengthCalculatorWindow.__init__: Comma not followed by a space
+        wx.Frame.__init__(self, parent, id, title, size=(PANEL_WIDTH,PANEL_HEIGH
+T))
+                                                                    ^^
+R:227:SlitLengthCalculatorWindow: Too many public methods (287/20)
+C:236: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:237: Invalid name "frame" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+W: 15: Unused import Reader
+************* Module sans.perspectives.calculator.source_editor
+C: 59: Line too long (87/80)
+C: 68: Line too long (82/80)
+C: 78: Line too long (85/80)
+C: 79: Line too long (81/80)
+C: 88: Line too long (86/80)
+C: 90: Line too long (89/80)
+C: 91: Line too long (81/80)
+C: 93: Line too long (84/80)
+C:102: Line too long (90/80)
+C:104: Line too long (93/80)
+C:105: Line too long (89/80)
+C:107: Line too long (88/80)
+C:108: Line too long (85/80)
+C:116: Line too long (90/80)
+C:118: Line too long (93/80)
+C:119: Line too long (89/80)
+C:121: Line too long (87/80)
+C:122: Line too long (84/80)
+C:132: Line too long (93/80)
+C:134: Line too long (96/80)
+C:135: Line too long (86/80)
+C:136: Line too long (81/80)
+C:137: Line too long (91/80)
+C:138: Line too long (87/80)
+C:145: Line too long (90/80)
+C:146: Line too long (89/80)
+C:159: Line too long (84/80)
+C:161: Line too long (84/80)
+C:163: Line too long (85/80)
+C:165: Line too long (88/80)
+C:174: Line too long (81/80)
+C:257: Line too long (81/80)
+C:260: Line too long (81/80)
+C:263: Line too long (87/80)
+C:288: Line too long (84/80)
+C:365: Line too long (83/80)
+C:380: Line too long (83/80)
+C:392: Line too long (83/80)
+C:394: Line too long (89/80)
+C:400: Line too long (81/80)
+C:413: Line too long (86/80)
+C:428: Line too long (88/80)
+C:433: Line too long (81/80)
+C:443: Line too long (88/80)
+C:448: Line too long (81/80)
+C:458: Line too long (88/80)
+C:463: Line too long (81/80)
+W:494: Bad indentation. Found 13 spaces, expected 12
+C:  1: Missing docstring
+R: 19:SourceDialog: Too many instance attributes (38/7)
+C: 19:SourceDialog: Missing docstring
+W: 20:SourceDialog.__init__: Redefining name 'source' from outer scope (line 499
+)
+C: 39:SourceDialog._define_structure: Comma not followed by a space
+        self.box_source = wx.StaticBox(self, -1,str("source"))
+                                               ^^
+C: 90:SourceDialog._layout_wavelength: Comma not followed by a space
+        self.wavelength_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 20),s
+tyle=0)
+                                                                              ^^
+
+C:104:SourceDialog._layout_wavelength_min: Comma not followed by a space
+        self.wavelength_min_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 2
+0),style=0)
+
+  ^^
+C:118:SourceDialog._layout_wavelength_max: Comma not followed by a space
+        self.wavelength_max_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH, 2
+0),style=0)
+
+  ^^
+C:134:SourceDialog._layout_wavelength_spread: Comma not followed by a space
+        self.wavelength_spread_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH
+, 20),style=0)
+
+     ^^
+W:129:SourceDialog._layout_wavelength_spread: Unused variable 'wavelength_spread
+'
+W:130:SourceDialog._layout_wavelength_spread: Unused variable 'wavelength_spread
+_unit'
+C:159:SourceDialog._layout_beam_size: Comma not followed by a space
+        self.x_beam_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style
+=0)
+                                                                     ^^
+C:161:SourceDialog._layout_beam_size: Comma not followed by a space
+        self.y_beam_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style
+=0)
+                                                                     ^^
+C:163:SourceDialog._layout_beam_size: Comma not followed by a space
+        self.z_beam_size_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style
+=0)
+                                                                     ^^
+C:165:SourceDialog._layout_beam_size: Comma not followed by a space
+        self.beam_size_unit_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), st
+yle=0)
+                                                                        ^^
+W:155:SourceDialog._layout_beam_size: Unused variable 'beam_size_unit'
+W:154:SourceDialog._layout_beam_size: Unused variable 'beam_size'
+W:192:SourceDialog._do_layout: Unused argument 'data'
+W:270:SourceDialog.set_values: Redefining name 'source' from outer scope (line 4
+99)
+C:291:SourceDialog.set_values: Invalid name "x" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:291:SourceDialog.set_values: Invalid name "y" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:291:SourceDialog.set_values: Invalid name "z" (should match [a-z_][a-z0-9_]{2,
+30}$)
+C:319:SourceDialog.on_change_name: Operator not followed by a space
+            self._notes += "name from %s to %s \n"%(self._source.name, name)
+                                                  ^
+C:330:SourceDialog.on_change_radiation: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._source.radiation, radiation)
+                                     ^
+C:340:SourceDialog.on_change_beam_shape: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._source.beam_shape, beam_shape)
+                                     ^
+C:350:SourceDialog.on_change_wavelength: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._source.wavelength, wavelength)
+                                     ^
+C:355:SourceDialog.on_change_wavelength: Operator not followed by a space
+            self._notes += "%s to %s"%(self._source.wavelength_unit, unit)
+                                     ^
+C:365:SourceDialog.on_change_wavelength_min: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._source.wavelength_min, wavelength_m
+in)
+                                     ^
+C:370:SourceDialog.on_change_wavelength_min: Operator not followed by a space
+            self._notes += "%s to %s"%(self._source.wavelength_min_unit, unit)
+                                     ^
+C:380:SourceDialog.on_change_wavelength_max: Operator not followed by a space
+        self._notes += " %s to %s \n"%(self._source.wavelength_max, wavelength_m
+ax)
+                                     ^
+C:385:SourceDialog.on_change_wavelength_max: Operator not followed by a space
+            self._notes += "%s to %s"%(self._source.wavelength_max_unit, unit)
+                                     ^
+C:394:SourceDialog.on_change_wavelength_spread: Operator not followed by a space
+
+        self._notes += " %s to %s \n"%(self._source.wavelength_spread, wavelengt
+h_spread)
+                                     ^
+C:400:SourceDialog.on_change_wavelength_spread: Operator not followed by a space
+
+            self._notes += "%s to %s"%(self._source.wavelength_spread_unit, unit
+)
+                                     ^
+C:413:SourceDialog.on_change_beam_size_name: Operator not followed by a space
+            self._notes += "name from %s to %s \n"%(self._source.beam_size_name,
+ name)
+                                                  ^
+C:428:SourceDialog.on_change_beam_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._source.beam_size.x, x_be
+am_size)
+                                                ^
+C:433:SourceDialog.on_change_beam_size: Operator not followed by a space
+                self._notes += "%s to %s"%(self._source.beam_size.x, x_beam_size
+)
+                                         ^
+C:443:SourceDialog.on_change_beam_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._source.beam_size.y, y_be
+am_size)
+                                                ^
+C:448:SourceDialog.on_change_beam_size: Operator not followed by a space
+                self._notes += "%s to %s"%(self._source.beam_size.y, y_beam_size
+)
+                                         ^
+C:458:SourceDialog.on_change_beam_size: Operator not followed by a space
+                    self._notes += "%s to %s \n"%(self._source.beam_size.z, z_be
+am_size)
+                                                ^
+C:463:SourceDialog.on_change_beam_size: Operator not followed by a space
+                self._notes += "%s to %s"%(self._source.beam_size.z, z_beam_size
+)
+                                         ^
+C:468:SourceDialog.on_change_beam_size: Operator not followed by a space
+            self._notes += "%s to %s"%(self._source.beam_size_unit, unit)
+                                     ^
+R:416:SourceDialog.on_change_beam_size: Too many branches (13/12)
+W:471:SourceDialog.on_click_apply: Unused argument 'event'
+W:487:SourceDialog.on_click_cancel: Unused argument 'event'
+R: 19:SourceDialog: Too many public methods (299/20)
+W:186:SourceDialog._layout_button: Attribute 'bt_close' defined outside __init__
+
+W: 90:SourceDialog._layout_wavelength: Attribute 'wavelength_unit_tcl' defined o
+utside __init__
+W: 68:SourceDialog._layout_radiation: Attribute 'radiation_tcl' defined outside
+__init__
+W: 44:SourceDialog._define_structure: Attribute 'beam_shape_sizer' defined outsi
+de __init__
+W: 50:SourceDialog._define_structure: Attribute 'beam_size_sizer' defined outsid
+e __init__
+W: 49:SourceDialog._define_structure: Attribute 'beam_size_name_sizer' defined o
+utside __init__
+W: 59:SourceDialog._layout_name: Attribute 'sample_name_tcl' defined outside __i
+nit__
+W: 45:SourceDialog._define_structure: Attribute 'wavelength_sizer' defined outsi
+de __init__
+W: 46:SourceDialog._define_structure: Attribute 'wavelength_min_sizer' defined o
+utside __init__
+W: 40:SourceDialog._define_structure: Attribute 'boxsizer_source' defined outsid
+e __init__
+W: 51:SourceDialog._define_structure: Attribute 'button_sizer' defined outside _
+_init__
+W: 78:SourceDialog._layout_beam_shape: Attribute 'beam_shape_tcl' defined outsid
+e __init__
+W:163:SourceDialog._layout_beam_size: Attribute 'z_beam_size_tcl' defined outsid
+e __init__
+W:102:SourceDialog._layout_wavelength_min: Attribute 'wavelength_min_tcl' define
+d outside __init__
+W:145:SourceDialog._layout_beam_size_name: Attribute 'beam_size_name_tcl' define
+d outside __init__
+W:183:SourceDialog._layout_button: Attribute 'bt_cancel' defined outside __init_
+_
+W:116:SourceDialog._layout_wavelength_max: Attribute 'wavelength_max_tcl' define
+d outside __init__
+W: 38:SourceDialog._define_structure: Attribute 'main_sizer' defined outside __i
+nit__
+W:118:SourceDialog._layout_wavelength_max: Attribute 'wavelength_max_unit_tcl' d
+efined outside __init__
+W:134:SourceDialog._layout_wavelength_spread: Attribute 'wavelength_spread_unit_
+tcl' defined outside __init__
+W: 42:SourceDialog._define_structure: Attribute 'name_sizer' defined outside __i
+nit__
+W: 43:SourceDialog._define_structure: Attribute 'radiation_sizer' defined outsid
+e __init__
+W: 39:SourceDialog._define_structure: Attribute 'box_source' defined outside __i
+nit__
+W: 47:SourceDialog._define_structure: Attribute 'wavelength_max_sizer' defined o
+utside __init__
+W:180:SourceDialog._layout_button: Attribute 'bt_apply' defined outside __init__
+
+W: 48:SourceDialog._define_structure: Attribute 'wavelength_spread_sizer' define
+d outside __init__
+W:104:SourceDialog._layout_wavelength_min: Attribute 'wavelength_min_unit_tcl' d
+efined outside __init__
+W: 88:SourceDialog._layout_wavelength: Attribute 'wavelength_tcl' defined outsid
+e __init__
+W:165:SourceDialog._layout_beam_size: Attribute 'beam_size_unit_tcl' defined out
+side __init__
+W:161:SourceDialog._layout_beam_size: Attribute 'y_beam_size_tcl' defined outsid
+e __init__
+W:159:SourceDialog._layout_beam_size: Attribute 'x_beam_size_tcl' defined outsid
+e __init__
+W:132:SourceDialog._layout_wavelength_spread: Attribute 'wavelength_spread_tcl'
+defined outside __init__
+C:496: Operator not followed by a space
+if __name__ =="__main__":
+            ^^
+C:497: Invalid name "app" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:499: Invalid name "source" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+C:500: Invalid name "dlg" (should match (([A-Z_][A-Z0-9_]*)|(__.*__))$)
+R:  1: Similar lines in 3 files
+==sans.perspectives.calculator.aperture_editor:124
+==sans.perspectives.calculator.sample_editor:175
+==sans.perspectives.calculator.source_editor:182
+        self.bt_cancel = wx.Button(self, -1,'Cancel')
+        self.bt_cancel.SetToolTipString("Cancel current changes.")
+        self.bt_cancel.Bind(wx.EVT_BUTTON, self.on_click_cancel)
+        self.bt_close = wx.Button(self, wx.ID_CANCEL,'Close')
+        self.bt_close.SetToolTipString("Close window.")
+        self.button_sizer.AddMany([(self.bt_apply, 0, wx.LEFT, 200),
+                                   (self.bt_cancel, 0, wx.LEFT, 10),
+                                   (self.bt_close, 0, wx.LEFT, 10)])
+
+    def _do_layout(self, data=None):
+        """
+        Draw the current panel
+        """
+        self._define_structure()
+        self._layout_name()
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.sample_editor:301
+==sans.perspectives.calculator.source_editor:302
+    def get_notes(self):
+        """
+            return notes
+        """
+        return self._notes
+
+    def on_change_name(self):
+        """
+            Change name
+        """
+        #Change the name of the sample
+        name = self.sample_name_tcl.GetValue().lstrip().rstrip()
+        if name == "" or name == str(None):
+            name = None
+R:  1: Similar lines in 4 files
+==sans.perspectives.calculator.aperture_editor:124
+==sans.perspectives.calculator.detector_editor:232
+==sans.perspectives.calculator.sample_editor:175
+==sans.perspectives.calculator.source_editor:182
+        self.bt_cancel = wx.Button(self, -1,'Cancel')
+        self.bt_cancel.SetToolTipString("Cancel current changes.")
+        self.bt_cancel.Bind(wx.EVT_BUTTON, self.on_click_cancel)
+        self.bt_close = wx.Button(self, wx.ID_CANCEL,'Close')
+        self.bt_close.SetToolTipString("Close window.")
+        self.button_sizer.AddMany([(self.bt_apply, 0, wx.LEFT, 200),
+                                   (self.bt_cancel, 0, wx.LEFT, 10),
+                                   (self.bt_close, 0, wx.LEFT, 10)])
+
+    def _do_layout(self, data=None):
+        """
+        Draw the current panel
+        """
+        self._define_structure()
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.sample_editor:48
+==sans.perspectives.calculator.source_editor:50
+        self.button_sizer = wx.BoxSizer(wx.HORIZONTAL)
+
+    def _layout_name(self):
+        """
+            Do the layout for sample name related widgets
+        """
+        # Sample name [string]
+        sample_name_txt = wx.StaticText(self, -1, 'Sample Name : ')
+        self.sample_name_tcl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH*5, 20), st
+yle=0)
+        self.name_sizer.AddMany([(sample_name_txt, 0, wx.LEFT|wx.RIGHT, 10),
+                                       (self.sample_name_tcl, 0, wx.EXPAND)])
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.sample_editor:7
+==sans.perspectives.calculator.source_editor:7
+if sys.platform.count("win32")>0:
+    _STATICBOX_WIDTH = 450
+    PANEL_WIDTH = 500
+    PANEL_HEIGHT = 430
+    FONT_VARIANT = 0
+else:
+    _STATICBOX_WIDTH = 480
+    PANEL_WIDTH = 550
+    PANEL_HEIGHT = 430
+    FONT_VARIANT = 1
+
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.help_panel:151
+==sans.perspectives.calculator.sld_panel:391
+        frame.Show(True)
+        self.SetTopWindow(frame)
+
+        return True
+
+
+if __name__ == "__main__":
+    app = ViewApp(0)
+    app.MainLoop()
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.detector_editor:155
+==sans.perspectives.calculator.sample_editor:148
+                                     (self.x_orientation_tcl, 0, wx.RIGHT, 10),
+                                     (y_orientation_txt, 0, wx.EXPAND),
+                                     (self.y_orientation_tcl, 0, wx.RIGHT, 10),
+                                     (z_orientation_txt, 0, wx.EXPAND),
+                                     (self.z_orientation_tcl, 0, wx.RIGHT, 10),
+                                     (orientation_unit_txt, 0, wx.EXPAND),
+                                     (self.orientation_unit_tcl, 0, wx.RIGHT, 10
+)])
+
+R:  1: Similar lines in 5 files
+==sans.perspectives.calculator.aperture_editor:124
+==sans.perspectives.calculator.collimation_editor:129
+==sans.perspectives.calculator.detector_editor:232
+==sans.perspectives.calculator.sample_editor:175
+==sans.perspectives.calculator.source_editor:182
+        self.bt_cancel = wx.Button(self, -1,'Cancel')
+        self.bt_cancel.SetToolTipString("Cancel current changes.")
+        self.bt_cancel.Bind(wx.EVT_BUTTON, self.on_click_cancel)
+        self.bt_close = wx.Button(self, wx.ID_CANCEL,'Close')
+        self.bt_close.SetToolTipString("Close window.")
+        self.button_sizer.AddMany([(self.bt_apply, 0, wx.LEFT, 200),
+                                   (self.bt_cancel, 0, wx.LEFT, 10),
+                                   (self.bt_close, 0, wx.LEFT, 10)])
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.data_editor:515
+==sans.perspectives.calculator.slit_length_calculator_panel:170
+        self._default_save_location = path
+        try:
+            #Load data
+            from load_thread import DataReader
+            ## If a thread is already started, stop it
+            if self.reader is not None and self.reader.isrunning():
+                self.reader.stop()
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.aperture_editor:5
+==sans.perspectives.calculator.sample_editor:4
+from sans.guiframe.utils import check_float
+
+_BOX_WIDTH = 60
+if sys.platform.count("win32")>0:
+    _STATICBOX_WIDTH = 450
+    PANEL_WIDTH = 500
+R:  1: Similar lines in 2 files
+==sans.perspectives.calculator.data_editor:522
+==sans.perspectives.calculator.slit_length_calculator_panel:180
+            self.reader = DataReader(path=path,
+                                    completefn=self.complete_loading,
+                                    updatefn=None)
+            self.reader.queue()
+        except:
+
+
+Report
+======
+2789 statements analysed.
+
+Statistics by type
+------------------
+
++---------+-------+-----------+-----------+------------+---------+
+|type     |number |old number |difference |%documented |%badname |
++=========+=======+===========+===========+============+=========+
+|module   |14     |14         |=          |21.43       |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|class    |21     |21         |=          |38.10       |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+|method   |230    |230        |=          |93.91       |1.74     |
++---------+-------+-----------+-----------+------------+---------+
+|function |4      |4          |=          |75.00       |0.00     |
++---------+-------+-----------+-----------+------------+---------+
+
+
+
+External dependencies
+---------------------
+::
+
+    DataLoader
+      \-data_info
+      | \-Aperture (sans.perspectives.calculator.aperture_editor,sans.perspectiv
+es.calculator.collimation_editor)
+      | \-Collimation (sans.perspectives.calculator.collimation_editor,sans.pers
+pectives.calculator.data_editor)
+      | \-Data2D (sans.perspectives.calculator.data_editor)
+      | \-DataInfo (sans.perspectives.calculator.data_editor)
+      | \-Detector (sans.perspectives.calculator.detector_editor,sans.perspectiv
+es.calculator.data_editor)
+      | \-Sample (sans.perspectives.calculator.sample_editor)
+      | \-Source (sans.perspectives.calculator.source_editor)
+      \-loader
+      | \-Loader (sans.perspectives.calculator.aperture_editor,sans.perspectives
+.calculator.load_thread,sans.perspectives.calculator.collimation_editor,sans.per
+spectives.calculator.console,sans.perspectives.calculator.data_editor)
+      \-readers
+        \-ascii_reader
+          \-Reader (sans.perspectives.calculator.slit_length_calculator_panel)
+    periodictable (sans.perspectives.calculator.sld_panel)
+      \-constants
+      | \-avogadro_number (sans.perspectives.calculator.sld_panel)
+      \-formula (sans.perspectives.calculator.sld_panel)
+      \-nsf
+      | \-neutron_scattering (sans.perspectives.calculator.sld_panel)
+      \-xsf
+        \-xray_energy (sans.perspectives.calculator.sld_panel)
+        \-xray_sld_from_atoms (sans.perspectives.calculator.sld_panel)
+    sans
+      \-calculator
+      | \-slit_length_calculator
+      |   \-SlitlengthCalculator (sans.perspectives.calculator.slit_length_calcu
+lator_panel)
+      \-guicomm
+      | \-events
+      |   \-StatusEvent (sans.perspectives.calculator.sld_panel,sans.perspective
+s.calculator.data_editor,sans.perspectives.calculator.slit_length_calculator_pan
+el)
+      \-guiframe
+      | \-utils
+      |   \-check_float (sans.perspectives.calculator.data_editor,sans.perspecti
+ves.calculator.sld_panel,sans.perspectives.calculator.detector_editor,sans.persp
+ectives.calculator.sample_editor,sans.perspectives.calculator.collimation_editor
+,sans.perspectives.calculator.aperture_editor,sans.perspectives.calculator.sourc
+e_editor)
+      |   \-format_number (sans.perspectives.calculator.sld_panel)
+      \-perspectives
+        \-calculator (sans.perspectives.calculator.help_panel)
+          \-aperture_editor
+          | \-ApertureDialog (sans.perspectives.calculator.collimation_editor)
+          \-calculator_widgets
+          | \-InterActiveOutputTextCtrl (sans.perspectives.calculator.slit_lengt
+h_calculator_panel)
+          | \-OutputTextCtrl (sans.perspectives.calculator.slit_length_calculato
+r_panel)
+          \-collimation_editor
+          | \-CollimationDialog (sans.perspectives.calculator.data_editor)
+          \-console
+          | \-ConsoleDialog (sans.perspectives.calculator.data_editor)
+          \-data_editor
+          | \-DataEditorWindow (sans.perspectives.calculator.calculator)
+          \-detector_editor
+          | \-DetectorDialog (sans.perspectives.calculator.data_editor)
+          \-help_panel
+          | \-HelpWindow (sans.perspectives.calculator.calculator)
+          \-load_thread
+          | \-DataReader (sans.perspectives.calculator.slit_length_calculator_pa
+nel,sans.perspectives.calculator.data_editor)
+          \-sample_editor
+          | \-SampleDialog (sans.perspectives.calculator.data_editor)
+          \-sld_panel
+          | \-SldWindow (sans.perspectives.calculator.calculator)
+          \-slit_length_calculator_panel
+          | \-SlitLengthCalculatorWindow (sans.perspectives.calculator.calculato
+r)
+          \-source_editor
+            \-SourceDialog (sans.perspectives.calculator.data_editor)
+    wx (sans.perspectives.calculator.console,sans.perspectives.calculator.data_e
+ditor,sans.perspectives.calculator.sld_panel,sans.perspectives.calculator.detect
+or_editor,sans.perspectives.calculator.source_editor,sans.perspectives.calculato
+r.help_panel,sans.perspectives.calculator.sample_editor,sans.perspectives.calcul
+ator.collimation_editor,sans.perspectives.calculator.calculator_widgets,sans.per
+spectives.calculator.aperture_editor,sans.perspectives.calculator.calculator,san
+s.perspectives.calculator.slit_length_calculator_panel)
+      \-html (sans.perspectives.calculator.help_panel)
+      \-lib
+        \-splitter
+          \-MultiSplitterWindow (sans.perspectives.calculator.help_panel)
+
+
+
+Raw metrics
+-----------
+
++----------+-------+------+---------+-----------+
+|type      |number |%     |previous |difference |
++==========+=======+======+=========+===========+
+|code      |3189   |73.72 |3189     |=          |
++----------+-------+------+---------+-----------+
+|docstring |752    |17.38 |752      |=          |
++----------+-------+------+---------+-----------+
+|comment   |88     |2.03  |88       |=          |
++----------+-------+------+---------+-----------+
+|empty     |297    |6.87  |297      |=          |
++----------+-------+------+---------+-----------+
+
+
+
+Duplication
+-----------
+
++-------------------------+------+---------+-----------+
+|                         |now   |previous |difference |
++=========================+======+=========+===========+
+|nb duplicated lines      |175   |175      |=          |
++-------------------------+------+---------+-----------+
+|percent duplicated lines |3.822 |3.822    |=          |
++-------------------------+------+---------+-----------+
+
+
+
+Messages by category
+--------------------
+
++-----------+-------+---------+-----------+
+|type       |number |previous |difference |
++===========+=======+=========+===========+
+|convention |609    |609      |=          |
++-----------+-------+---------+-----------+
+|refactor   |57     |57       |=          |
++-----------+-------+---------+-----------+
+|warning    |413    |413      |=          |
++-----------+-------+---------+-----------+
+|error      |11     |11       |=          |
++-----------+-------+---------+-----------+
+
+
+
+% errors / warnings by module
+-----------------------------
+
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|module                                                    |error |warning |refa
+ctor |convention |
++==========================================================+======+========+====
+=====+===========+
+|sans.perspectives.calculator.data_editor                  |45.45 |23.24   |5.26
+     |5.91       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.slit_length_calculator_panel |27.27 |6.54    |5.26
+     |4.60       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.sld_panel                    |18.18 |6.54    |12.2
+8    |19.21      |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.load_thread                  |9.09  |0.48    |1.75
+     |0.16       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.detector_editor              |0.00  |16.46   |12.2
+8    |20.36      |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.collimation_editor           |0.00  |10.90   |3.51
+     |4.76       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.source_editor                |0.00  |10.17   |24.5
+6    |13.79      |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.sample_editor                |0.00  |9.93    |8.77
+     |12.32      |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.aperture_editor              |0.00  |7.02    |5.26
+     |8.87       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.calculator                   |0.00  |4.12    |5.26
+     |0.66       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator                              |0.00  |1.94    |0.00
+     |0.66       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.help_panel                   |0.00  |1.21    |7.02
+     |6.40       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.calculator_widgets           |0.00  |0.73    |5.26
+     |0.49       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+|sans.perspectives.calculator.console                      |0.00  |0.73    |3.51
+     |1.81       |
++----------------------------------------------------------+------+--------+----
+-----+-----------+
+
+
+
+Messages
+--------
+
++-----------+------------+
+|message id |occurrences |
++===========+============+
+|C0301      |210         |
++-----------+------------+
+|W0201      |207         |
++-----------+------------+
+|C0323      |124         |
++-----------+------------+
+|C0103      |124         |
++-----------+------------+
+|C0324      |104         |
++-----------+------------+
+|W0613      |49          |
++-----------+------------+
+|W0612      |49          |
++-----------+------------+
+|W0311      |29          |
++-----------+------------+
+|W0621      |26          |
++-----------+------------+
+|C0111      |26          |
++-----------+------------+
+|R0904      |19          |
++-----------+------------+
+|W0622      |15          |
++-----------+------------+
+|W0403      |14          |
++-----------+------------+
+|C0112      |13          |
++-----------+------------+
+|W0611      |11          |
++-----------+------------+
+|R0801      |11          |
++-----------+------------+
+|E1101      |9           |
++-----------+------------+
+|R0912      |8           |
++-----------+------------+
+|R0902      |8           |
++-----------+------------+
+|C0322      |8           |
++-----------+------------+
+|W0702      |7           |
++-----------+------------+
+|R0913      |4           |
++-----------+------------+
+|R0201      |4           |
++-----------+------------+
+|W0102      |2           |
++-----------+------------+
+|R0914      |2           |
++-----------+------------+
+|W0511      |1           |
++-----------+------------+
+|W0404      |1           |
++-----------+------------+
+|W0401      |1           |
++-----------+------------+
+|W0105      |1           |
++-----------+------------+
+|R0915      |1           |
++-----------+------------+
+|F0401      |1           |
++-----------+------------+
+|E1103      |1           |
++-----------+------------+
+|E0602      |1           |
++-----------+------------+
+
+
+
+Global evaluation
+-----------------
+Your code has been rated at 5.93/10 (previous run: 5.93/10)
+
+
+C:\Documents and Settings\galina\workspace>
