Author: bugman Date: Wed Feb 4 17:16:27 2015 New Revision: 27522 URL: http://svn.gna.org/viewcvs/relax?rev=27522&view=rev Log: Merged revisions 27500-27501,27503-27517 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r27500 | bugman | 2015-02-04 09:30:58 +0100 (Wed, 04 Feb 2015) | 3 lines Modified the manual_c_module.py developer script so that the path can be supplied on the command line. ........ r27501 | bugman | 2015-02-04 09:34:10 +0100 (Wed, 04 Feb 2015) | 3 lines Removed some unused imports, as found by devel_scripts/find_unused_imports.py. ........ r27503 | bugman | 2015-02-04 10:14:28 +0100 (Wed, 04 Feb 2015) | 5 lines Added a copyright notice to the memory_leak_test_relax_fit.py development script. This is to know how old the script is, to see how out of date it is in the future. ........ r27504 | bugman | 2015-02-04 11:15:48 +0100 (Wed, 04 Feb 2015) | 7 lines Created the memory_leak_test_GUI_uf.py development script. This is to help in tracking down memory leaks in the relax GUI user functions. Instead of using a debugging Python version and guppy (wxPython doesn't seem to work with these), the pympler Python package and its muppy module is used to produce a memory usage printout. ........ r27505 | bugman | 2015-02-04 11:30:11 +0100 (Wed, 04 Feb 2015) | 3 lines Clean up of the memory_leak_test_GUI_uf.py development script. ........ r27506 | bugman | 2015-02-04 13:57:37 +0100 (Wed, 04 Feb 2015) | 6 lines Created the new devel_scripts/memory_management/ directory. This will be used for holding all of the memory C module leak detection, GUI object leak detection, memory management, etc. development scripts. ........ r27507 | bugman | 2015-02-04 13:58:17 +0100 (Wed, 04 Feb 2015) | 3 lines Shifted the memory_leak_test_GUI_uf.py script to devel_scripts/memory_management/GUI_uf_minimise_execute.py. ........ r27508 | bugman | 2015-02-04 14:12:22 +0100 (Wed, 04 Feb 2015) | 6 lines Created a base class for the memory management scripts for the GUI user functions. The core of the GUI_uf_minimise_execute.py script has been converted into the GUI_base.py base class module. This will allow for new GUI user function testing scripts to be created. ........ r27509 | bugman | 2015-02-04 14:15:25 +0100 (Wed, 04 Feb 2015) | 3 lines Removal of unused imports from the GUI user function memory testing scripts. ........ r27510 | bugman | 2015-02-04 14:18:26 +0100 (Wed, 04 Feb 2015) | 3 lines Created a script for testing the memory management when calling the time GUI user function. ........ r27511 | bugman | 2015-02-04 15:32:44 +0100 (Wed, 04 Feb 2015) | 19 lines Large memory management improvement for the relax GUI wizards and GUI user functions. The pympler.muppy based memory management scripts in devel_scripts/memory_management for testing the GUI user function windows was showing that for each GUI user function call, 28 wx._core.BoxSizer elements were remaining in memory. This was traced back to the gui.wizards.wiz_objects.Wiz_window class, specifically the self._page_sizers and self._button_sizers lists storing wx.BoxSizer instances. The problem was that 16 page sizers and 16 button sizers were initialised each time for later use, however the add_page() method only added a small subset of these to the self._main_sizer wx.BoxSizer object. But the Destroy() method was only capable of destroying the wx.BoxSizer instances associated with another wxPython object. The fix was to add all page and button sizers to the self._main_sizer object upon initialisation. This will solve many memory issues in the GUI, especially in the GUI tests on Mac OS X systems causing 'memory error' or 'bus error' messages and on MS Windows due to 'USER Object' and 'GDI object' limitations. ........ r27512 | bugman | 2015-02-04 15:49:30 +0100 (Wed, 04 Feb 2015) | 5 lines The maximum number of pages in the GUI wizard is no longer hardcoded. The max_pages argument has been added to allow this value to be changed. ........ r27513 | bugman | 2015-02-04 16:19:54 +0100 (Wed, 04 Feb 2015) | 10 lines Fix for GUI wizards and GUI user functions. The recent memory management changes caused the wizard windows to have an incorrect layout so that the wizard pages were not visible. Reperforming a layout of the GUI elements did not help. The solution is to not initialise sets of max_pages of wx.BoxSizer elements in the wizard __init__() method, but to generate and append these dynamically via the add_page() method. The change now means that there are no longer multiple unused wx.BoxSizer instances generated for each wizard window created. ........ r27514 | bugman | 2015-02-04 16:22:22 +0100 (Wed, 04 Feb 2015) | 3 lines Removed a debugging printout. ........ r27515 | bugman | 2015-02-04 16:28:04 +0100 (Wed, 04 Feb 2015) | 6 lines Fix for the GUI wizard _go_next() method. The way to determine if there are no more pages needs to be changed, as there are now no empty list elements at the end of the wizard storage objects. ........ r27516 | bugman | 2015-02-04 16:35:58 +0100 (Wed, 04 Feb 2015) | 5 lines Another fix for the now variable sized wizard page list. This time the fix is in the GUI user function __call__() method. ........ r27517 | bugman | 2015-02-04 16:47:44 +0100 (Wed, 04 Feb 2015) | 5 lines Fix for the default grid_inc argument for the relaxation curve-fitting auto-analysis. This needs to be an integer. ........ Added: branches/frame_order_cleanup/devel_scripts/memory_management/ - copied from r27517, trunk/devel_scripts/memory_management/ Removed: branches/frame_order_cleanup/devel_scripts/memory_leak_test_relax_fit.py Modified: branches/frame_order_cleanup/ (props changed) branches/frame_order_cleanup/auto_analyses/relax_fit.py branches/frame_order_cleanup/devel_scripts/manual_c_module.py branches/frame_order_cleanup/gui/uf_objects.py branches/frame_order_cleanup/gui/wizards/wiz_objects.py branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/Hessian.py branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/covariance_matrix.py branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/estimate_errors.py branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/integrate.py branches/frame_order_cleanup/test_suite/shared_data/diffusion_tensor/ellipsoid/tensor_opt.py branches/frame_order_cleanup/user_functions/relax_disp.py branches/frame_order_cleanup/user_functions/relax_fit.py [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/frame_order_cleanup/auto_analyses/relax_fit.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/auto_analyses/relax_fit.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/devel_scripts/manual_c_module.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/devel_scripts/manual_c_module.py?rev=27522&r1=27521&r2=27522&view=diff Removed: branches/frame_order_cleanup/devel_scripts/memory_leak_test_relax_fit.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/devel_scripts/memory_leak_test_relax_fit.py?rev=27521&view=auto Modified: branches/frame_order_cleanup/gui/uf_objects.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/gui/uf_objects.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/gui/wizards/wiz_objects.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/gui/wizards/wiz_objects.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/Hessian.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/Hessian.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/covariance_matrix.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/covariance_matrix.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/estimate_errors.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/estimate_errors.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/integrate.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/numeric_topology/integrate.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/test_suite/shared_data/diffusion_tensor/ellipsoid/tensor_opt.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/diffusion_tensor/ellipsoid/tensor_opt.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/user_functions/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/user_functions/relax_disp.py?rev=27522&r1=27521&r2=27522&view=diff Modified: branches/frame_order_cleanup/user_functions/relax_fit.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/user_functions/relax_fit.py?rev=27522&r1=27521&r2=27522&view=diff