Changes

Jump to navigation Jump to search

Relax 3.0.0

2,926 bytes added, 14:42, 11 September 2014
User function HTML manual links.
* The lib.selection.parse_token() function is using the new Python way of splitting strings. This is via the string's split() method.
* Removed the no longer used parser argument for reading PDB files from some unit tests.
* Removed the unit test of the parser argument of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function]. The argument no longer exists.* Shifted the cone geometric object representation functions to lib.structure.represent.cone. The [http://www.nmr-relax.com/manual/structure_create_cone_pdb.html structure.create_cone_pdb user function ] first calls pipe_control.structure.main.create_cone_pdb() which then calls lib.structure.represent.cone.cone(). This allows the pipe_control function to write out the file and add it to the data pipe's results file list.
* Fixed some name classes in the namespace of pipe_control.structure.mass.
* Shifted the diffusion tensor structural object code to lib.structure.represent.diffusion_tensor. The user function routes to pipe_control.structure.main.create_diff_tensor_pdb(), which pulls the tensor info out of the data store, and then calls the diffusion_tensor() function of lib.structure.represent.diffusion_tensor to create the representation, writes out a PDB file, and finally adds the file to the data pipe's results file list.
* More removals of the now dead parser argument for the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function].
* Removed the parser argument from structure.read_pdb in the stereochemistry auto-analysis.
* Restored the selection object __contains_spin_id() method as contains_spin_id(). This will allow for faster checks for matches to spin ID strings.
* Modified the bug_20674_ct_analysis_failure.py system test script to use self._execute_uf(). This allows the test to operate as a GUI test, which was failing.
* Created the specific API common method _data_init_spin(). This will be used as a general method for aliasing to data_init() for initialising spin parameters.
* Added printouts for the [http://www.nmr-relax.com/manual/select_read.html select.read ] and [http://www.nmr-relax.com/manual/deselect_read.html deselect.read ] user functions to identify the spins affected.
* Created the new lib.list module with the function count_unique_elements(). This function will be used to determine the unique number of elements in a list.
* Shifted the Sparky peak intensity reading code to lib.software.sparky.read_list_intensity(). This new function comes from the old pipe_control.spectrum.intensity_sparky() function, but with the spin ID code removed.
* The common spin methods of the specific analysis API now ignore parameters not in the model. This affects the _data_init_spin(), _sim_init_values_spin(), and _sim_return_param_spin() methods. The result is that the spin containers no longer hold parameter variables set to None for non-model parameters.
* Created the pipe_control.plotting module. This will be used as a base for the plotting of all types of data. This includes the current OpenDX and Grace modules, as well as future modules. The determine_functions() function has been added and is used to simplify the pipe_control.grace.get_data() function.
* The [http://www.nmr-relax.com/manual/grace_write.html grace.write user function ] data type argument sequence values have changed. Instead of 'spin', this can now be 'res_num' or 'spin_num' to specify that either the residue number or spin number should be plotted on the desired axis. The x_data_type now defaults to 'res_num'.
* Created the pipe_control.mol_res_spin.count_max_spins_per_residue() function. This will be used by the plotting module to determine if more than one spin per residue exists.
* Fixes for the change of the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function ] data type 'spin' to 'res_num'.
* Updated the pipe_control.plotting.determine_functions() function.
* Added the skip_desel flag to the important pipe_control.mol_res_spin.spin_loop() generator function. This is used to skip deselected spins within the loop. As must of the code in relax using the spin_loop() does this anyway, this can be used to simplify many of the spin looping elements in relax.
* Expanded the relax_fit system test script to produce all types of currently supported Grace graphs. This is to more extensively test the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function].* Large redesign of the 2D graphing code in relax. This currently affects only the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function], but the new infrastructure will make it much easier to expand the graphing abilities and to support other 2D graphing software. The plotting code has also been significantly simplified. The pipe_control.grace.get_data() function has been shifted into the pipe_control.plotting module. It has been split up into the base assemble_data() function with the data assembly shifted to assemble_data_scatter(), assemble_data_seq_value() and assemble_data_series_series(). This split massively simplifies the code by not packing all different graph and set combinations into one. In addition the auxiliary functions classify_graph_2D(), fetch_1D_data(), get_functions(), and get_data_type() have been created to maximise code sharing between the different assemble_*() functions.* Modified the relax_fit system test script to generate a new type of graph. This is the residue number sequence verses the peak intensity series data (and vice versa) via the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function]. This is to help in the implementation of this graph type.
* Created the pipe_control.plotting.assemble_data_seq_series() function. This is to allow the residue or spin numbering to be plotted against any series type data (lists or dictionaries), or vice versa.
* Added a link to the PDF user manual from the HTML user manual. This will affect all pages at http://www.nmr-relax.com/manual/ by adding an icon to the navigation bar pointing to the PDF manual at http://download.gna.org/relax/manual/relax.pdf.
* The spin ID string is now being used by the plotting functions. The spin ID was not being passed into the assemble_data_*() functions.
* Changed how pipe_control.plotting.assemble_data_seq_value() determines the number of graph sets. Instead of counting the maximum number of spins per residue, different spin names are now checked across the sequence. This is needed as a single residue could have a different type of spin. This was caught by the Mf.test_dauvergne_protocol system test.
* Modified pipe_control.plotting.assemble_data_series_series() to handle dictionaries with keys as values. This will be useful in, for example, relaxation dispersion for plotting the dispersion curves. In this case, the R2eff values are in a dictionary where the keys are the values to plot against. This is different from the current case where the X and Y data dictionaries are required to have the same keys. These changes expand the capabilities of the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function].
* Formatting change for the auto_analyses __all__ package list.
* Removed the import of the auto-analysis modules into the auto_analyses package __init__ module. This import is not needed.
* The N-state model system test module now imports the auto-analysis to fix an import order error.
* Added a warning for the [http://www.nmr-relax.com/manual/spectrum_read.html spectrum.read user function ] if a peak intensity of zero is encountered. This value can cause singular matrix failures in certain optimisation algorithms.* The [http://www.nmr-relax.com/manual/spectrum_error_analysis.html spectrum.error_analysis user function ] can now be performed on a subset of all spectra. The subset argument has been added to allow the error analysis to be restricted to a subset of all loaded spectral data.
* Created the lib.list.unique_elements() function for returning a list with duplicates removed.
* Shifted the standard deviation code from the Monte Carlo error_analysis() function to the lib package. The new function lib.stats.std() is now used to simplify the error_analysis() function and allow the code to be reused. This will be useful for expanding the pipe_control.monte_carlo.error_analysis() function to handle parameters which are dictionaries, for example as in the relax_disp branch.
* Simplified all of the peak analysis wizard wizard_update_*() methods. They now all defer to the wizard_update_ids() method which updates the spectrum ID fields.
* Simplified the wizard_update_noe_spectrum_type() method as in the previous commit.
* Fixes for the [http://www.nmr-relax.com/manual/frq_set.html frq.set user function ] in the GUI. The ID list is now set to the spectrum IDs, and the frequency units are no longer all fused into one string.
* Unicode is now used for the tau symbol in the model-free model parameter lists in the GUI. This is only when modifying the models to optimise, which shouldn't be changed anyway.
* Removed the 'string' from 'Spectrum ID string' in the spectrum list GUI element. This is a GUI - the word string is meaningless here!
* More unicode strings are used for the GUI for subscripts and Greek letters.
* Fixes for the R1 and R2 GUI analyses for the recently introduced unicode subscript characters. There is now self.label for a pure string version and self.gui_label for the fancier unicode version.
* The [http://www.nmr-relax.com/manual/frq_set.html frq.set user function ] 'id' argument is no longer read only - this was causing test suite failures.
* Removed a nasty kludge for releasing the execution lock on failure. This kludge, after the bug fix for https://gna.org/bugs/?20756, was causing failures in the test suite.
* Changed the 'Execute relax' button in all analyses in the GUI to 'Execute analysis'. It makes no sense to execute relax as relax has been executing during the analysis initialisation and the user setting up all the data for the analysis. This is a remnant of ancient design of Michael Bieri's GUI being a separate program to relax, which would execute relax with the click of this button.
* Added unit tests for the lib.mathematics module.
* The relax_fit analysis now uses lib.mathematics.round_to_next_order() for the scaling matrix. This allows the optimised I0 value to be better understandable in the printouts.
* Created the new Value system test class with the first test Value.test_value_copy. This test demonstrates some pretty large bugs in the [http://www.nmr-relax.com/manual/value_copy.html value.copy user function].
* Modified the Value.test_value_copy system test to check the copying of errors as well.
* Added the error flag argument to all of the specific analysis API set_param_values() methods. This will allow parameter errors as well as values to be set.
* The Value.test_value_copy system test now checks all of the values and errors.
* Added the error flag argument to the [http://www.nmr-relax.com/manual/value_set.html value.set user function]. This will allow for parameter errors to be set by the user.
* The specific analysis API _return_value_general() method now returns errors even when values are missing.
* The internal structural object PDF file creation now writes out http://www.nmr-relax.com. Previously the link http://nmr-relax.com was written out.
* Converted all of the specific analysis modules into packages. The model-free and steady-state NOE analyses were already packages, and this now brings all other analyses in line with the package design of specific_analyses. The only change is that the files specific_analyses/x.py have been shifted to specific_analyses/x/__init__.py and the __all__ package variable added.
* Epydoc docstring fixes for the compat module.
* The peak intensity wizard can now function remotely when the spins are not named. This will be needed for the GUI tests to allow the Question() call to be bypassed and still adding the [http://www.nmr-relax.com/manual/spin_name.html spin.name user function ] as the first page of the wizard. The key for spin.name page has also been fixed so that the page can be accessed.
* The timing of individual tests in the relax test suite can now be printed out. The new command line argument --time has been added which, when supplied with one of the test suite arguments, will cause the time required to complete each individual test to be displayed. Instead of just printing the characters '.', 'F', and 'E' for each test, now these characters are postfixed with the time in seconds, the name of the test and ending in a newline character.
* Big speed up of the test suite by skipping a large number of redundant Frame Order system tests. These are tests of using only PCS or only RDC data. These tests are still active for the pseudo-ellipse just to make sure that a whole missing data type can be handled.
* Suppressed the reporting of skipped tests in the test suite if the module is set to None.
* The preview button in the file selection elements of the user function windows can now be disabled. This is via the new wiz_filesel_preview argument being set to False.
* Merged the [http://www.nmr-relax.com/manual/frq_set.html frq.set ] and [http://www.nmr-relax.com/manual/temperature.html temperature ] user functions into the new spectrometer user function class. The [http://www.nmr-relax.com/manual/frq_set.html frq.set user function ] is now called [http://www.nmr-relax.com/manual/spectrometer_frequency.html spectrometer.frequency ] and [http://www.nmr-relax.com/manual/temperature.html temperature ] is now [http://www.nmr-relax.com/manual/spectrometer.temperature. .html spectrometer.temperature.] To match these changes, the cdp.frq variable is now called cdp.spectrometer_frq.* Modified the [http://www.nmr-relax.com/manual/spectrometer_frequency.html spectrometer.frequency user function ] so that a frequency list and count is stored. These are the new cdp.spectrometer_frq_list and cdp.spectrometer_frq_count variables. This will allow various parts of relax which assemble frequency information to be simplified and made more consistent.
* Created basic SVG and PNG graphics for the spectrometer user function class. The spectrometer is black so as not to offend Bruker, Varian, or Jeol users by avoiding a colour from one of these companies.
* The pipe_control.spectrometer.get_frequencies() function can now return MHz or Tesla units.
* Added backwards compatibility support for the spectrometer frequency list and count. This is needed for old relax state files.
* A whitelist is now being used to limit the number of frame order GUI tests to 1.
* Shifted all frequency data handling associated with relaxation data to pipe_control.spectrometer. This includes the deletion of the [http://www.nmr-relax.com/manual/relax_data_frq.html relax_data.frq user function ] as this replicates the behaviour of spectrometer.frequency. A number of functions from the pipe_control.relax_data module have changed: frq() has been deleted as it is replaced by pipe_control.spectrometer.set_frequencies(); frq_checks() has been shifted to pipe_control.spectrometer.frequency_checks(); frq_loop() has been shifted to pipe_control.spectrometer.loop_frequencies(); num_frq() has been deleted as the new variable cdp.spectrometer_frq_count contains this info. Two new functions in the pipe_control.spectrometer module have been added to remove the functionality from pipe_control.relax_data. These are copy_frequencies() and delete_frequencies().* The [http://www.nmr-relax.com/manual/molmol_macro_run.html molmol.macro_run user function ] file argument now has a description.
* Huge speed up of the system tests for the loading and creation of model-free saved states. The OMP files used for the system test have been truncated from 134 to 7 spins, changing the timing of 6 system tests from 11-13 seconds to less than 0.5 seconds each.
* All of the binary file arguments for the user functions now are file selection GUI elements. The GUI user function wizard pages now have file selection buttons for selecting the executable to run. These all have the preview button disabled. The results.read and state.load GUI elements also have the preview button disabled.
* The user function 'prompt' description elements as now displayed in the GUI wizard page.
* The [http://www.nmr-relax.com/manual/monte_carlo_error_analysis.html monte_carlo.error_analysis user function ] can now handle parameters which are lists.
* Added the ability for specific analyses to override the optimisation constraint algorithm. The default is still the 'Method of Multipliers', but if the constraint_algorithm() method returns a different string, then that will be used to select the algorithm. This allows the 'Log Barrier' method in minfx to be used.
* The [http://www.nmr-relax.com/manual/value_display.html value.display ] and [http://www.nmr-relax.com/manual/value_write.html value.write ] user functions can now handle list and dictionary type parameters.
* Added two methods to the specific analysis common API class. These are the _model_type_global() and _model_type_local() methods for always specifying that the model type is global (i.e. at the level of the data pipe) or local (i.e. there can be multiple clusters of models).
* Added some more functions to the lib.statistics module. These include the bucket() function for creating a discrete distribution from a list of floating point numbers, and the gaussian() function for calculating the probability of a point on a Gaussian distribution.
* Removed the pipe_control.dipole_pair module as its contents is now in pipe_control.interatomic.
* Removed the dipole_pair module from the pipe_control package __all__ list.
* Merged the [http://www.nmr-relax.com/manual/interatom_create.html interatom.create ] user function into [http://www.nmr-relax.com/manual/interatom_define.html interatom.define]. These user functions had overlapping functionality which would be confusing for a user.
* Added polish to all of the interatom user function docstrings.
* Improved the functionality of the [http://www.nmr-relax.com/manual/interatom_read_dist.html interatom.read_dist user function]. The file data is now stripped using lib.io.strip to remove comments and blank lines. And now if the iteratomic data container cannot be found, it is created instead of raising a RelaxError.
* Improvements to the RelaxZeroVectorWarning - the warning message was terribly out of date.
* Polish for the [http://www.nmr-relax.com/manual/rdc_read.html rdc.read user function]. Comment lines and blank lines are now removed to suppress useless warning messages about these lines containing no valid data.
* Added some basic initial relax icons for J couplings.
* Created some basic initial GUI wizard graphics for J couplings.
* Modified the titles of all the auto-analysis GUI elements. The text 'Setup for' has been removed as it is meaningless.
* Added more emphasis on the titles of the auto-analysis GUI elements. There is now more space below the title, and a different font (16pt roman italic) is being used.
* Removed some now irrelevant information from the [http://www.nmr-relax.com/manual/rdc_read.html rdc.read user function ] docstring.* Removed a false prompt example from the [http://www.nmr-relax.com/manual/rdc_read.html rdc.read user function ] docstring.
* Created an entire new user function class for handling J couplings in the relax data store. This derives from the RDC user function modules. The following functions have been created: j_coupling.copy, j_coupling.delete, j_coupling.display, j_coupling.read, and j_coupling.write.
* Added a check for the RDC data type to the [http://www.nmr-relax.com/manual/rdc_read.html rdc.read user function].* The [http://www.nmr-relax.com/manual/rdc_read.html rdc.read user function ] can now handle T = J+D type data. Support for this in the specific analyses is yet to be added.* Fixed for the [http://www.nmr-relax.com/manual/rdc_read.html rdc.read], [http://www.nmr-relax.com/manual/j_coupling_read.html j_coupling.read ] and [http://www.nmr-relax.com/manual/interatomic_read_dist.html interatomic.read_dist ] user functions. Comment lines are no longer removed, as it is impossible to tell a comment line from a spin ID string.
* Split up the specific_analyses.n_state_model package into modules. The new data and parameter modules have been created by shifting out method from the __init__ module and converting them into functions of the two new modules. This is to simplify the package.
* Shifted another method from the N_state_model class to the specific_analyses.n_state_model.data module.
* Shifted the user function initalisation. This is from the import of the user_functions package to the package initialise() function. This is for saner importing dependencies in the relax sources.
* The lib.io.open_write_file() function now catches file names of None and raises a RelaxError. This is useful for the GUI if the user forgets to select a file name.
* The [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function ] can now handled T=J+D type data.
* The N-state model analysis can now handle RDC data of mixed D and T=J+D.
* Added support for mixed RDC data types per alignment. This is to allow, for example, one bond RDC values of the 'D' data type and two bond RDC values of the T = J+D data type to be loaded for the same alignment ID. This is now handled in the N-state or ensemble analysis by handling a different RDC data type per RDC value.
* Creation of the optimisation chapter of the relax user manual. The main text of this chapter originates as part of the model-free chapter. As this most of this text was not model-free specific, it has been spun out as its own chapter. Text has also been taken from the "Optimisation of relaxation data – values, gradients, and Hessians" chapter. The indexing for the optimisation topics has also been improved.
* Changed the chapter layout of the relax user manual. The development chapter has been moved forwards.
* Fix for the [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities user function ] docstring. Grammatically, the text "spectrum ID's" should be "spectrum IDs". The problem though was that this text was strangely causing the user manual compilation to fail.
* Added subsubindexing for the optimisation algorithm index entries.
* Added extensive cross-referencing to the index of the relax user manual.
* Restored the default behaviour of the spin_loop(). The skip_desel flag is now functional and defaults to False.
* Fix for the relax_times and intensities parameter definitions for specific_analyses.relax_fit. These are dictionaries, not lists.
* Fix for the [http://www.nmr-relax.com/manual/spectrum_error_analysis.html spectrum.error_analysis user function ] for replicated spectra and subsets. A second call to spectrum.error_analysis was removing the results from the first call. This is now avoided.
* Bug fix for the right click popup menu in the spectra list GUI element. This affects the NOE, R1, and R2 analyses. The actions of the menu items were all mixed up.
* Fix for the nasty [https://gna.org/bugs/?20756 bug #20756]. The problem was that the global execution lock was not always released by a relax script when certain errors are raised during the script execution. This does not occur for all types of error though. Now the release of the lock has been shifted into the 'finally' statement to absolutely force lock release.
* Big bug fix for a memory leak in the relaxation curve-fitting C module. Proper reference counting is used for the temporary 'element' Python objects used in the conversion between Python and C objects. The use of the Py_CLEAR() macro removes the memory leak. However the number of references as seen by sys.gettotalrefcount() in a debugging Python version keeps rising and might be a problem in the future.
* Big bug fix for the [http://www.nmr-relax.com/manual/value_copy.html value.copy user function ] - it is now functional again.* Bug fix for the [http://www.nmr-relax.com/manual/value_copy.html value.copy user function]. The user function can now handle parameter errors, and the values are set in the correct data pipe.
* Bug fix for an incorrect print statement in the N_state_model.test_paramag_centre_fit system test. This is in the script, and was uncovered using WinPython by [http://gna.org/users/tlinnet Troels E. Linnet] via the relax system tests at http://thread.gmane.org/gmane.science.nmr.relax.devel/3863. The Python bug was detailed at http://thread.gmane.org/gmane.science.nmr.relax.devel/3863/focus=3867.
* Fix for the package checking as part of the unit tests. This was identified from the [https://gna.org/bugs/?20820 bug report #20820] submitted by [https://gna.org/users/tlinnet Troels E. Linnet]. The problem was that on some systems, the full path is required for checking the presence of the directories which are the sub-packages of the main package being checked. The result was that checking for the package in the __all__ list was skipped. Note that this change does not fix the bug reported.
* Bug fix for the pipe_control.spectrometer.get_frequencies() function. The units argument was incorrectly referenced.
* Fix for [https://gna.org/bugs/?20820 bug #20820]. Solution found - 'software' was not mentioned in __init__.py, and failed at import.
* Partial fix for [https://gna.org/bugs/?20873 bug #20873]. The spectrum_id argument for the [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities user function ] can now be both a string and a list of strings.
* Fix for [http://gna.org/bugs/?20873 bug #20873]. This was reported by [http://gna.org/users/tlinnet Troels E. Linnet]. The ability to load multiple peak intensities from a single generic formatted file has been correctly implemented. This involves added checks to make sure that the user supplies reasonable arguments and to then loop over the intensity column argument.
* Python 3 fixes via the 2to3 program.
* Bug fix for the [http://www.nmr-relax.com/manual/value_write.html value.write user function ] for list or dictionary type data. This is for the case where the variable of one spin is set to None rather than a list or dictionary type.
* Bug fix for the Sequence GUI input element. This complete the removal of [https://gna.org/bugs/?20873 bug #20873]. The problem was that the gui_to_str() function was not failing to convert the string into a string list, so the list was deemed as a single string. Now the first character of '[' or '(' for lists or tuples are now searched for instead of relying on the conversion to trigger an error.
* Fixes for the [http://www.nmr-relax.com/manual/value_write.html value.write user function ] for simple parameter values of None. This is a recently introduced bug which causes a complete failure of the user function is the parameter for any spin is None.
* Fix for [https://gna.org/bugs/?20888 bug #20888, the autoscaling of Grace graphs]. This solution was mentioned in the post at http://thread.gmane.org/gmane.science.nmr.relax.devel/3920/focus=3930. Instead of using minimum and maximum values for the axes in the Grace graphs produced by the lib.software.grace module, which was the old solution for having the graphs scaled to reasonable values, instead the '@autoscale' command is appended to the end of all graphs. This is performed by the write_xy_data() function.
* Bug fix for the running of the test suite in the relax GUI. The fix of r19727 was extended to apply to the GUI as well. Too many arguments were being sent into TextTestRunner Python class on certain Python versions (3.1 and ≤ 2.6).
* Big bug fix - the relax execution lock now truly supports nesting. This fixes [https://gna.org/bugs/?20891 bug #20891] reported by [https://gna.org/users/tlinnet Troels Linnet]. Scripts can now be executed from the GUI. Note that this is a very dangerous fix.
* Completed the fix for [https://gna.org/bugs/?20889 bug #20889]. The problem was that the [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities user function ] was incorrectly updating the cdp.spectrum_ids list when the spectrum_id argument is set to a list. The list of IDs was being set as a single element of cdp.spectrum_ids, causing problems with the GUI when updating the ComboBox choices and then subsequent setting of the spectrum IDs. This bug and fix is independent of the relax_disp branch, despite being uncovered there and being caught by the Relax_disp.test_bug_20889_multi_col_peak_list GUI test in that branch.* Bug fix for the GUI element for the [http://www.nmr-relax.com/manual/interatom_define.html interatom.define user function]. The special spin ID GUI elements can not be set to the get_spin_ids() function as then SetValue can no longer work for IDs not in the list.
* Fixes for the TestCase class names for a number of lib package modules. As the test class name was incorrect, previously the test suite was skipping these silently. This was dangerous.
* Fixes for the unit tests of the lib.selection module. The contains_*() methods now should be used. And the test_Selection_ful_spin_id() unit test has been completely deleted as this way of checking the selection object is no longer valid.
* Fix for [https://gna.org/bugs/?20918 bug #20918, the hanging of the data pipe editor]. This was reported by [https://gna.org/users/tlinnet Troels Linnet] and is an MS Windows only problem. The problem is in the wxMSW part of wxPython, and it may be fixed in newer wxPython versions. The issue is nevertheless now avoided by calling the GUI user function store objects with the arguments wx_wizard_sync=True and wx_wizard_modal=True. This appears to solve the problem.
* Decreased the precision of the check in the Frame_order.test_rigid_data_to_rigid_model system test. This is to allow the test to pass on a MS Windows 7 test machine.
* More MS Windows fixes, this time a nasty kludge, for the relax system tests. This is strangely needed for the relax_disp branch and not the trunk for a 64-bit MS Windows 7 test system. The reason why this WindowsError is triggered by the base tearDown() method in the relax_disp branch and not trunk is a total mystery. Actually why Windows refuses to complete the file close() operations of the [http://www.nmr-relax.com/manual/results_write.html results.write ] and [http://www.nmr-relax.com/manual/state_save.html state.save ] user functions before calling the tearDown() method is the greater mystery.
* Bug fix for the batch file permissions for executing Art Palmer's Modelfree4 program. This was identified in the post http://thread.gmane.org/gmane.science.nmr.relax.devel/3953/focus=4000. The file was set to be executable, but on Unix systems it would end up with the permissions "---x------".
* Small comment fix in the sample_scripts/consistency_tests.py script.
* Fix for the relax version file for the relax user manual construction. This was causing 'scons user_manual_pdf' and related targets to fail when a local git repository is used (via git-svn).
* Bug fix for the page numbers in the index - these were often out by a few pages. The makeindex command was being run too early in the repetitive LaTeX compilation chain, causing the page numbers to be incorrect. It is now run twice to fix the problem.
* Fix for the [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities user function ] in the GUI. The menu string was truncated to spectrum.read.
* Python 3 fix for the lib.software.nmrpipe.read_list_intensity_seriestab() function. The inbuilt Python filter() function does not return a list in Python 3, as previously, but rather a filter object. Therefore a call to list() is required to properly convert the data.
* An attempt at better handling MS Windows not releasing the file handle on time in the test suite. The system and unit tests tearDown() method should now be resilient to the strange MS Windows behaviour of not releasing the relax state files. The tearDown() method should now complete even when this error occurs. A delay of 3 seconds has been added when the WindowsError occurs to give the OS some time before attempting to delete the file again. If this fails, then the file deletion operation is skipped.
Trusted, Bureaucrats
4,228

edits

Navigation menu