Author: bugman Date: Tue Jul 10 09:33:26 2012 New Revision: 17216 URL: http://svn.gna.org/viewcvs/relax?rev=17216&view=rev Log: Improved debugging print outs for the observer objects. The method name is now stored and included in all the observer 'debug>' printouts. Modified: trunk/gui/analyses/__init__.py trunk/gui/analyses/auto_model_free.py trunk/gui/analyses/auto_noe.py trunk/gui/analyses/auto_rx_base.py trunk/gui/components/base_list.py trunk/gui/controller.py trunk/gui/export_bmrb.py trunk/gui/pipe_editor.py trunk/gui/relax_gui.py trunk/gui/relax_prompt.py trunk/gui/results_viewer.py trunk/gui/spin_viewer/frame.py trunk/gui/uf_objects.py trunk/status.py Modified: trunk/gui/analyses/__init__.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/analyses/__init__.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/analyses/__init__.py (original) +++ trunk/gui/analyses/__init__.py Tue Jul 10 09:33:26 2012 @@ -84,16 +84,16 @@ # Register the page switch method for pipe switches. self.name = 'notebook page switcher' - status.observers.pipe_alteration.register(self.name, self.pipe_switch) + status.observers.pipe_alteration.register(self.name, self.pipe_switch, method_name='pipe_switch') # Register a method for removing analyses if the associated pipe is deleted. - status.observers.pipe_alteration.register('notebook pipe deletion', self.pipe_deletion) + status.observers.pipe_alteration.register('notebook pipe deletion', self.pipe_deletion, method_name='pipe_deletion') # Register the deletion of all analyses for the reset status observer. - status.observers.reset.register('gui analyses', self.post_reset) + status.observers.reset.register('gui analyses', self.post_reset, method_name='post_reset') # Register state loading. - status.observers.state_load.register('gui analyses', self.load_from_store) + status.observers.state_load.register('gui analyses', self.load_from_store, method_name='load_from_store') def analysis_data_loop(self): Modified: trunk/gui/analyses/auto_model_free.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/analyses/auto_model_free.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/analyses/auto_model_free.py (original) +++ trunk/gui/analyses/auto_model_free.py Tue Jul 10 09:33:26 2012 @@ -623,8 +623,8 @@ # Register. if not remove: - status.observers.gui_uf.register(self.data.pipe_bundle, self.update_spin_count) - status.observers.exec_lock.register(self.data.pipe_bundle, self.activate) + status.observers.gui_uf.register(self.data.pipe_bundle, self.update_spin_count, method_name='update_spin_count') + status.observers.exec_lock.register(self.data.pipe_bundle, self.activate, method_name='activate') # Unregister. else: Modified: trunk/gui/analyses/auto_noe.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/analyses/auto_noe.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/analyses/auto_noe.py (original) +++ trunk/gui/analyses/auto_noe.py Tue Jul 10 09:33:26 2012 @@ -283,8 +283,8 @@ # Register. if not remove: - status.observers.gui_uf.register(self.data.pipe_bundle, self.update_spin_count) - status.observers.exec_lock.register(self.data.pipe_bundle, self.activate) + status.observers.gui_uf.register(self.data.pipe_bundle, self.update_spin_count, method_name='update_spin_count') + status.observers.exec_lock.register(self.data.pipe_bundle, self.activate, method_name='activate') # Unregister. else: Modified: trunk/gui/analyses/auto_rx_base.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/analyses/auto_rx_base.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/analyses/auto_rx_base.py (original) +++ trunk/gui/analyses/auto_rx_base.py Tue Jul 10 09:33:26 2012 @@ -299,8 +299,8 @@ # Register. if not remove: - status.observers.gui_uf.register(self.data.pipe_bundle, self.update_spin_count) - status.observers.exec_lock.register(self.data.pipe_bundle, self.activate) + status.observers.gui_uf.register(self.data.pipe_bundle, self.update_spin_count, method_name='update_spin_count') + status.observers.exec_lock.register(self.data.pipe_bundle, self.activate, method_name='activate') # Unregister. else: Modified: trunk/gui/components/base_list.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/components/base_list.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/components/base_list.py (original) +++ trunk/gui/components/base_list.py Tue Jul 10 09:33:26 2012 @@ -298,8 +298,8 @@ # Register. if not remove: - status.observers.gui_uf.register(self.name, self.build_element) - status.observers.pipe_alteration.register(self.name, self.build_element) + status.observers.gui_uf.register(self.name, self.build_element, method_name='build_element') + status.observers.pipe_alteration.register(self.name, self.build_element, method_name='build_element') # Unregister. else: Modified: trunk/gui/controller.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/controller.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/controller.py (original) +++ trunk/gui/controller.py Tue Jul 10 09:33:26 2012 @@ -128,10 +128,10 @@ print(info.intro_text()) # Register functions with the observer objects. - status.observers.pipe_alteration.register('controller', self.update_controller) - status.observers.auto_analyses.register('controller', self.update_controller) - status.observers.gui_analysis.register('controller', self.update_controller) - status.observers.exec_lock.register('controller', self.update_gauge) + status.observers.pipe_alteration.register('controller', self.update_controller, method_name='update_controller') + status.observers.auto_analyses.register('controller', self.update_controller, method_name='update_controller') + status.observers.gui_analysis.register('controller', self.update_controller, method_name='update_controller') + status.observers.exec_lock.register('controller', self.update_gauge, method_name='update_gauge') def add_gauge(self, parent, sizer, desc, tooltip=None): Modified: trunk/gui/export_bmrb.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/export_bmrb.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/export_bmrb.py (original) +++ trunk/gui/export_bmrb.py Tue Jul 10 09:33:26 2012 @@ -382,7 +382,7 @@ # Register. if not remove: - status.observers.pipe_alteration.register('BMRB export', self.update_pipes) + status.observers.pipe_alteration.register('BMRB export', self.update_pipes, method_name='update_pipes') # Unregister. else: Modified: trunk/gui/pipe_editor.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/pipe_editor.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/pipe_editor.py (original) +++ trunk/gui/pipe_editor.py Tue Jul 10 09:33:26 2012 @@ -119,9 +119,9 @@ self.activate() # Register the grid for updating when a user function completes or when the GUI analysis tabs change. - status.observers.pipe_alteration.register(self.name, self.update_grid) - status.observers.gui_analysis.register(self.name, self.update_grid) - status.observers.exec_lock.register(self.name, self.activate) + status.observers.pipe_alteration.register(self.name, self.update_grid, method_name='update_grid') + status.observers.gui_analysis.register(self.name, self.update_grid, method_name='update_grid') + status.observers.exec_lock.register(self.name, self.activate, method_name='activa') # Show the window using the base class method. if status.show_gui: Modified: trunk/gui/relax_gui.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/relax_gui.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/relax_gui.py (original) +++ trunk/gui/relax_gui.py Tue Jul 10 09:33:26 2012 @@ -169,9 +169,9 @@ self.interpreter = Interpreter() # Register functions with the observer objects. - status.observers.pipe_alteration.register('status bar', self.update_status_bar) - status.observers.result_file.register('gui', self.show_results_viewer_no_warn) - status.observers.exec_lock.register('gui', self.enable) + status.observers.pipe_alteration.register('status bar', self.update_status_bar, method_name='update_status_bar') + status.observers.result_file.register('gui', self.show_results_viewer_no_warn, method_name='show_results_viewer_no_warn') + status.observers.exec_lock.register('gui', self.enable, method_name='enab') # Assume a script has been run and there is data in the store. self.analysis.load_from_store() Modified: trunk/gui/relax_prompt.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/relax_prompt.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/relax_prompt.py (original) +++ trunk/gui/relax_prompt.py Tue Jul 10 09:33:26 2012 @@ -1,6 +1,6 @@ ############################################################################### # # -# Copyright (C) 2010-2011 Edward d'Auvergne # +# Copyright (C) 2010-2012 Edward d'Auvergne # # # # This file is part of the program relax. # # # @@ -66,7 +66,7 @@ self.add_shell(sizer) # Register functions with the observer objects. - status.observers.exec_lock.register('GUI prompt', self.enable) + status.observers.exec_lock.register('GUI prompt', self.enable, method_name='enable') def add_shell(self, sizer): Modified: trunk/gui/results_viewer.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/results_viewer.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/results_viewer.py (original) +++ trunk/gui/results_viewer.py Tue Jul 10 09:33:26 2012 @@ -118,10 +118,10 @@ """ # Register a few methods in the observer objects. - status.observers.gui_uf.register(self.name, self.refresh) - status.observers.pipe_alteration.register(self.name, self.refresh) - status.observers.result_file.register(self.name, self.refresh) - status.observers.exec_lock.register(self.name, self.activate) + status.observers.gui_uf.register(self.name, self.refresh, method_name='refresh') + status.observers.pipe_alteration.register(self.name, self.refresh, method_name='refresh') + status.observers.result_file.register(self.name, self.refresh, method_name='refresh') + status.observers.exec_lock.register(self.name, self.activate, method_name='activate') # First update. self.refresh() Modified: trunk/gui/spin_viewer/frame.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/spin_viewer/frame.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/spin_viewer/frame.py (original) +++ trunk/gui/spin_viewer/frame.py Tue Jul 10 09:33:26 2012 @@ -125,9 +125,9 @@ """ # Register a few methods in the observer objects. - status.observers.gui_uf.register(self.name, self.refresh) - status.observers.pipe_alteration.register(self.name, self.refresh) - status.observers.exec_lock.register(self.name, self._activate) + status.observers.gui_uf.register(self.name, self.refresh, method_name='ref') + status.observers.pipe_alteration.register(self.name, self.refresh, method_name='ref') + status.observers.exec_lock.register(self.name, self._activate, method_name='_activate') # First update. self.refresh() Modified: trunk/gui/uf_objects.py URL: http://svn.gna.org/viewcvs/relax/trunk/gui/uf_objects.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/gui/uf_objects.py (original) +++ trunk/gui/uf_objects.py Tue Jul 10 09:33:26 2012 @@ -808,7 +808,7 @@ """Clear and update the data if needed.""" # Register this page with the 'gui_uf' observer so that update_args() is called once the any user function completes. - status.observers.gui_uf.register(self.name, self.update_args) + status.observers.gui_uf.register(self.name, self.update_args, method_name='update_args') # Update the args. return self.update_args() Modified: trunk/status.py URL: http://svn.gna.org/viewcvs/relax/trunk/status.py?rev=17216&r1=17215&r2=17216&view=diff ============================================================================== --- trunk/status.py (original) +++ trunk/status.py Tue Jul 10 09:33:26 2012 @@ -412,8 +412,9 @@ # Store the args. self._name = name - # The dictionary of callback methods. + # The dictionary of callback methods (and their names). self._callback = {} + self._method_names = {} # The list of keys, for ordered execution. self._keys = [] @@ -429,19 +430,24 @@ for key in self._keys: # Debugging. if self._status.debug: - sys.stdout.write("debug> Observer: '%s' notifying '%s'.\n" % (self._name, key)) + if self._method_names[key]: + sys.stdout.write("debug> Observer: '%s' notifying the '%s' method %s().\n" % (self._name, key, self._method_names[key])) + else: + sys.stdout.write("debug> Observer: '%s' notifying '%s'.\n" % (self._name, key)) # Call the method. self._callback[key]() - def register(self, key, method): + def register(self, key, method, method_name=None): """Register a method to be called when the state changes. - @param key: The key to identify the observer's method. - @type key: str - @param method: The observer's method to be called after a state change. - @type method: method + @param key: The key to identify the observer's method. + @type key: str + @param method: The observer's method to be called after a state change. + @type method: method + @keyword method_name: The optional method name used in debugging print outs. + @type method_name: str or None """ # Already exists. @@ -450,10 +456,16 @@ # Debugging. if self._status.debug: - sys.stdout.write("debug> Observer: '%s' registering '%s'.\n" % (self._name, key)) + if method_name: + sys.stdout.write("debug> Observer: '%s' registering the '%s' method %s().\n" % (self._name, key, method_name)) + else: + sys.stdout.write("debug> Observer: '%s' registering '%s'.\n" % (self._name, key)) # Add the method to the dictionary of callbacks. self._callback[key] = method + + # Add the method name. + self._method_names[key] = method_name # Add the key to the ordered list. self._keys.append(key) @@ -492,6 +504,9 @@ # Remove the method from the dictionary of callbacks. self._callback.pop(key) + + # Remove the name. + self._method_names.pop(key) # Remove the key for the ordered key list. self._keys.remove(key)