This is the Python super-compatibility release - relax will now run on
Python 2.3 all the way to Python 3.3, a span of over 9 years of Python
development.  Some exceptions are Python 3.0 as numpy and scipy are
not compatible with that release, the execution of external programs
in Python 2.3 not being supported, and the GUI currently not available
on Python 3 due to the wxPython project not being compatible with this
new Python design yet.  A number of important bug fixes are also
included.  For more details please see below.

The new relax versions can be downloaded from
http://www.nmr-relax.com/download.html.  If binary distributions are
not yet available for your platform and you manage to compile the
binary modules, please consider contributing these to the relax
project (described in section 3.6 of the relax manual,
http://www.nmr-relax.com/manual/relax_distribution_archives.html).

The full list of changes is:

    Features:
        * Python 2.3 to 3.3 support, including large changes
throughout the code to be able to run on Python 3.
        * Improvements to the GUI tutorial in the model-free chapter
of the relax manual.
        * A number of bugfixes.
        * Small improvements overall.


    Changes:
        * The scons 'clean' target now removes the Python 3
__pycache__ directories.
        * Small edit to the installation chapter of the user manual.
        * Decreased the Python version dependency from 2.5 to 2.3 in
the installation chapter of the user manual.
        * More error checking for the associate_auto() method of the
data pipe editor window.
        * Added data pipe bundle error checking for the GUI pipe
editor window associate_auto() method.
        * Added some error checking for the data pipe bundle in the
auto model-free analysis GUI code.
        * Added some special RelaxErrors for data pipe bundles.
        * Added some bug catching code for the observer objects.  In
some rare cases a registered method's key was set to None.  This is
now caught and a RelaxError thrown to prevent later indecipherable
errors.
        * The setup.py application building script now complains if
the Python setuptools are not installed.
        * Updated the relax prompt mode figure in the intro chapter of
the user manual to the more modern prompt.
        * Improvements to the API documentation compilation.  The
excluded files and directories, as well as hidden ones, are no longer
included in the list of files/directories to add to the documentation.
        * Added a file with the relax user functions used for the
prompt screenshots.  This is for the manual and the website.
        * Added the public domain LaTeX nth.sty style file for the
user manual.  Some LaTeX distributions do not have this style file
and, as it is public domain, it can be legally distributed with relax
allowing the PDF manual to compile on more systems.
        * Fixes for weird print statements with double brackets
generated by the 2to3 Python conversion script.
        * Removed a debugging printout.
        * Python 3 fixes for one of the test data scripts - print
statement with function call replacements.
        * Python 3 fixes for non-used Python code - converted print
statements to function calls.
        * Python 3 fixes for the script for generating plots of
magnetic field lines.
        * Another print statement to function Python 3 fix for the user manual.
        * The Python print statements in the user manual are now
function calls to be Python 3 compatible.
        * Python 3 fix for the
generic_fns.structure.geometric.angles_regular() function.  Integer
divisions no longer produce integers.
        * Better formatting of the test suite summary.
        * The text relax controller log is no longer cleared when a
reset occurs.  This allows the test suite results to still be
presented in GUI mode.
        * Even cleaner exiting of the GUI - the interpreter thread is
terminated by the exit_gui() method.
        * The GUI is now cleanly exited with a call to
wx.App.ExitMainLoop rather than wx.Exit.
        * Python 3 fix for the compat module - the Queue2 object needs
to always be defined.
        * Added support for Python 2.2 and earlier for the compilation
of the C modules.
        * Removed an unused import of the Queue module from the multi-processor.
        * Python 3 fix for the ScientificPython PDB reader unit tests.
 The order of the keys returned by a dictionary's keys() method
changes randomly in Python 3, so now they are sorted prior to
comparison.
        * Redesigned the reset user function backend.  This now no
only clears out the relax data store, but it also resets the GUI if
present.  Some of the reset code comes from the tearDown() method of
the GUI tests.  All windows but the main GUI window are closed and the
relax controller gauges are set to zero and the log window text
cleared.  These changes should allow GUI tests after an error or
failure to pass, something which is currently problematic.
        * Disabled the initial relax intro printout from the GUI when
running the test suite.  This prevents the intro text from appearing
in the first failed test.
        * Fix for the Mf.test_read_results_1_3_v2_broken() system test
for Python 3.2.  The object comparison method no longer converts
dictionaries to strings for the comparison, as the string version is
different in different Python versions.
        * Fix for the Mf.test_write_results() system test for the
Python 3 versions.  The logic for determining Python 3 versions was
broken and the incorrect files was used for Python 3.1.
        * Better Python 2.3 support.  The compat module is now
imported at the very start to allow the builtins to be set before any
other imports.  The sorted() builtin method is now mimicked and the
os.devnull string set for Python 2.3 and earlier.
        * Fix for the Mf.test_write_results() system test for Python
3.1.  The XML version in Python 3.1 is the old style.  Therefore the
old results file is being used to check this Python 3.1 result.
        * Small improvements to the multiple Python version test suite
testing script.
        * Reactivated support for Python 2.3.  This mainly skips the
missing 'subprocess' module.  This however decreases relax's
functionality a little.
        * Created a special script for testing out relax with Python
versions 1.0 all the way to 3.3.  This builds the C modules for each
Python version in ~/bin and then runs the test suite, outputting
everything to log files.
        * The Results system tests are no longer dependent on the
relaxation curve-fitting C modules.  This allows these tests to run
when the module cannot be imported.
        * Python 2.5 and lower fix for the
test_write_protein_sequence() unit test.  The byte array is wrapped in
an eval() statement to allow Python 2.5 and lower to parse the code
without failing, and the byte array comparison is now only used for
Python 3+.
        * All system and GUI tests reliant on the relax-fit C modules
are deactivated if import fails.  This removes a pile of useless error
messages from the test suite and presents a table of skipped tests at
the end.
        * More Python 3 fixes for the use of now non-existent string
module functions.
        * Python 3 fix for the model-free BMRB export - many string
module methods no longer exist.
        * Mass conversion of the alignment tensor data structures to
the same new design as the diffusion tensor.  This large set of
changes matches all of those revisions for the diffusion tensor
already committed.  The alignment tensor data structures are now read
only, and can only be modified via the set() method.  This is a much
simplified design which works on all Python versions.
        * Small clean ups of the diffusion tensor data structure code.
        * Deleted the now unused _update_sim_set() method of the
diffusion tensor data structure.
        * Removed the now unused _update_sim_append() method from the
diffusion tensor data structure.
        * Cleaned up the docstring of the diffusion tensor data object
__setattr__() method.
        * Updated all of the diffusion tensor unit tests to the new design.
        * Fix for the reading of model-free results files from relax
1.2 when simulation data is missing.
        * Fix for the reading of relax 1.2 model-free results files
for the diffusion tensor structure redesign.
        * Another fix for the fold_angles() diffusion tensor function
- again an incomplete design conversion.
        * Fix for the setting of the diffusion tensor parameter errors
in the model-free specific analysis code.
        * Fix for the setup of the model-free Monte Carlo simulations
for the new diffusion tensor design.
        * Another fix for the diffusion_tensor.init user function - it
was not completely converted.
        * Fix for the fixing of parameters in the model-free analyses.
 The diffusion tensor set_fixed() method is now used.
        * Fix for the XML output of the diffusion tensor - only the
modifiable parameters are output.  This was the previous behaviour and
is needed for the test suite to pass.
        * Converted the palmer.extract user function to use the new
diffusion tensor design.
        * The diffusion tensor bmrb_read() function now uses the
set_fixed() method instead of fixed().
        * The fix user function now uses the diffusion tensor
set_fixed() method.
        * Renamed the diffusion tensor fixed() method to set_fixed()
to avoid clashing with the 'fixed' object.
        * Fix for the model-free specific analysis duplicate_data()
method for the new design.  The diffusion tensor __mod_attr__ object
is now called _mod_attr.
        * Fix for the diffusion tensor to_xml() method for the new
design.  For some reason the methods of the Element class are no
longer blacklisted.
        * Converted the diffusion tensor data structure from_xml()
method to the new tensor design.
        * Fix for the Diffusion_tensor.test_copy system test - the
simulation parameters are now read-only.  Instead, the diffusion
tensor set() method needs to be called.
        * The setting of list values for the DiffTensorSimList object
now works correctly.  The private _set() method now works correctly by
calling the base class method, and the normal setting of diffusion
tensor simulation values produces a RelaxError.
        * Fix for the diffusion tensor __deepcopy__() replacement
method for the new design.
        * The model-free specific analysis _disassemble_param_vector()
method now uses the new diffusion tensor design.
        * Modified the setUp() method for the diffusion tensor system
tests to use the new design.
        * Redesigned how diffusion tensor simulation structures are
handled.  The design is now much cleaner and works with all Python
versions.
        * Removed all the unused imports from specific_fns.model_free.main.
        * A number of private diffusion tensor objects and methods
have switched to the single leading '_' format.
        * Improvements to the diffusion tensor set() method.  The
parameters, errors and simulations are now properly differentiated and
stored.
        * Converted the old diffusion tensor __setattr__() method into
the set() method.  This is the only way in which diffusion tensor
parameters, errors and simulations can be set.
        * Renamed the diffusion tensor data structure type() method to
set_type().  This is because the type is stored as the 'type' object,
clashing with the method name.
        * Created the diffusion tensor data structure type() method
for setting the tensor type.  This is to remove the
"cdp.diff_tensor.type = 'x'" code from the core of relax, as the
structure is now read only.
        * The new diffusion tensor fixed() method has been created to
allow the fixed flag to be changed.
        * Fix for the initialisation of the diffusion tensor data
structure, now that it is read-only.
        * The diffusion tensor data structure has been completely
converted into a read-only structure.  The __setattr__() method now
will always raise a RelaxError, and the diffusion tensor simulation
data structure objects __setitem__() method will raise the same error.
        * Updated the relax version numbers and 'trunk' used relax
user manual.  For example the information about checking out the main
development line was still talking about 1.3 rather than the trunk.
        * Python 3 fix for the setting of diffusion and alignment
tensor simulation values.  The previous code somehow worked in Python
2 but was not formally correct and broke in Python 3.
        * Python 3 fix for the model-free results file reading tests.
The ordering of dictionaries is different in Python 3, so now these
are properly converted from strings to dictionaries before comparison.
 This was not happening because of the XML changes from Python 2.7.3
onwards.
        * The relaxation curve-fitting system tests are now skipped if
the module is missing or broken.  This improves the printouts from the
test suite and shows a summary of skipped tests rather than a pile of
traceback messages and errors.
        * The message about skipping the GUI tests due to wxPython
being missing is now more specific.  This was being shown for all runs
of the test suite when it only needs to appear if GUI tests have been
run.
        * Added a Python 3 version of the truncated OMP model-free
results file.  This was created with trunk.
        * Removed the Python 3 byte array hack which should have been
removed earlier.
        * The OMP model-free results file generation script now
outputs for any relax version.
        * Python 3 fix for the Mf.test_latex_table system test.  The
latex_mf_table.py model-free system test script docstring contains
backslashes, so the raw string format r"""Text""" is now used.
        * Python 3 support for Modelfree4 and Dasha.  The
subprocess.Popen class works with byte arrays rather than strings in
Python 3+.  The Python objects are now interconverted when the Python
3 encode() and decode() methods are detected.
        * Removed the pickle format information and arguments from the
state user function definitions.
        * Eliminated the State.test_state_pickle() system test as
pickled states are no longer supported.
        * Removed the ability to save and restore states using the
pickle module.  A pickled state is of no use to relax anymore.  It's
removal is needed for Python 3 support.  So now everything defaults to
the XML formatted output.
        * Python 3 fix - removed the use of the string module from
generic_fns.spectrum.
        * Python 3 fix for the relax_io.open_write_file() function.
This now matches the behaviour of open_read_file() in that there are
three different behaviours for opening bz2 and gz files for writing to
for the different Python versions (one for Python 2, one for Python
3.0 to 3.2, and one for Python 3.3+).  All byte streams have been
eliminated as open_write_file() is for creating text files.
        * Python 3 fix for the Noe.test_noe_analysis() system test for
the grace.write precision changes.
        * For consistency between Python 2 and 3, the grace.write user
function outputs to 15 decimal places.  This increased precision will
only be of use in the relax test suite.
        * Python 3 fix for the Pipes.test_pipe_bundle() system test.
The order of bundle names returned by generic_fns.pipes.bundle_names()
is not guaranteed in Python 3.
        * The C module compilation testing script now accepts the
Python version as a first argument.
        * The relax_io.open_read_file() now supports all Python
versions over 2.4.  This required some really nasty hacks for Python
3.0, 3.1 and 3.2 with the Bzip2Fixed and GzipFixed classes overriding
the incomplete and buggy bz2.BZ2File and gzip.GzipFile modules, and
being wrapped around io.TextIOWrapper().
        * Added the IO module to the relax information printout and
dependency checks.
        * The manual C module compilation script is now executable.
        * Renamed the 'scripts' directory to 'devel_scripts' so that
users are less likely to ask about the scripts.
        * Finished off the C module compilation testing script.
        * Added a script for testing out the C module compilation on
multiple Python targets.
        * The relax_fit specific analysis module now supports both
Python 2 and 3.
        * The relaxation curve-fitting C module now supports
compilation on both Python 2 and 3.
        * Created the simple Sequence.test_sequence_copy() system test
to catch bug #20213 (https://gna.org/bugs/?20213).
        * The Mf.test_bug_20213_asn_sidechain() system test now uses a
temporary directory for output.
        * Added the Mf.test_bug_20213_asn_sidechain() system test to
catch bug #20213.  The data and script comes from the files
'sh3-47.2.zip' and 'run.py' attached to the bug report
https://gna.org/bugs/?20213.  The PDB now only contains Asp47, the
optimisation parameters have been made almost insignificant, and all
models but 'tm0' have been removed from the analysis.
        * The Python 3 dictionary values() method no longer returns a
list, so a list() call is needed.
        * Python 3 bug fix for the geometric structure module -
another integer division to float problem.
        * The Mf.test_write_results system test can now select the
correct file to compare against in Python 3.  The algorithm for
determining if the 'final_results_trunc_1.3_v2' or
'final_results_trunc_1.3_pre_py2.7.3_v2' file should be used could not
handle Python 3.
        * Python 3 fix for the format detection of results and save files.
        * Python 3 import fixes for the generic_fns.structure package
using relative paths.
        * Python 3 fix - removed the use of the string.lower()
function in the OpenDX mapping code.
        * Python 3 fix for the frame order system tests.  As float to
string conversions behave differently, the %.1f formatting is used to
force only a single decimal place float.
        * Python 3 fix for the frame order system tests - float to
string conversions behave differently.  Now the explicit %.1f
formatting is used to force only a single decimal place float.
        * Python 3 integer division to float fix for the frame order analysis.
        * Python 3 bug fix for the frame order analysis - another int
division problem.
        * Python 3 fixes - eliminated all usage of the dictionary
has_key() calls as they are no longer present.
        * Python 2 and 3 support in the generic_fns.relax_data module
using 2to3.  One print call was fixed after running 2to3.
        * Python 3 bug fix for the
Structure.test_read_pdb_mol_2_model_scientific system tests.  This is
again an integer division problem returning a float.
        * Python 3 fix for the test_write_protein_sequence() unit
test.  This is again a string verses byte verses unicode problem.
        * Python 3 fix for the user function docstring creation in the
prompt UI mode.  Again this is the problem of a division now returning
a float rather than an int.
        * Python 3 bug fix for the N-state model target function
setup.  The num_tensors variable needs to be an integer, but the
Python 3 division will create a float type.
        * Python 3 fix for the results.read user function matching
that of state.load.
        * Python 3 bug fix for the relax_io.read_spin_data() function.
 The built in max() function cannot handle the value of None,
therefore the filter() function is used to remove all instances of
None from the list.
        * Python 3 bug fix for the state.load user function.  The
header line of pickled states (rather than the standard XML states) is
of the b'' byte format.  This is now converted to a string, and the
search expression is comparing it to the raw string r"<\?xml".
        * Better support for both Python 2 and 3 in the relax data
store.  The 2to3 script was used on all of the files in the data
package.
        * Python 3 preparation - the relax data store (the data
package) now supports both Python 2 and 3.
        * Python 3 fix - the relax_errors.AllRelaxErrors object is now
a proper tuple.  Due to bad coding, it was previously a nested tuple.
This nested tuple worked in Python 2, but is fatal for Python 3.
        * Python 3 fixes - the character '\' is now properly escaped
as '\\' in the stereochemistry auto-analysis.
        * Fix for the test suite summary for Python 3.  The test suite
now runs, but fails miserably, under Python 3.
        * Fix for the running of the test suite under Python 3.  The
zip() function used in the loadTestsFromTestCase() function is now an
iterator, so it needs to be passed through the list() function to
generate a list.
        * Fix for the test_parse_token_multi_element_name() unit test,
as parse_token() no longer sorts.
        * Python 3 fix for the generic_fns.mol_res_spin.parse_token()
function.  Mixed lists for int and string can no longer be sorted.
This sort call is not needed anyway.
        * Automatically converted the generic_fns.mol_res_spin module
to support both Python 2 and 3.
        * For running relax with Python 2, the __builtin__.range()
function has been replaced with xrange.  This causes large speed ups
(speed that was lost with the earlier xrange() to range()
conversions), and memory decreases.  For example on one system, the
system test time decreased from 513.029s to 487.586s.
        * The compat module now has the py_version variable specifying
if this is Python 2 or 3.
        * Import fix for the OpenDX mapping package, recently broken
with the relative import for Python 3 change.
        * More usage of the is_unicode() function in the
generic_fns.mol_res_spin module.
        * Created the check_types.is_unicode() function for Python 2+3
compatibility.  This is used in the generic_fns.mol_res_spin module.
        * Another raise() function call to statement change for 2to3
preparations.
        * Converted some raise() function calls to raise statements in
preparation for the 2to3 conversion.
        * Converted the ScientificPython PDB reader to support both
Python 2 and 3.  The __repr__() method was manually modified due to
the 'list' variable clashing with the 'list'type.
        * Created a new module for simultaneous Python 2 and 3 support
in relax called 'compat'.
        * Python 3 fixes - the list() function is now used in
combination with range() to generate the ordered list.  range() in
Python 3 is an iterator object (just as xrange was), so now the list()
function has to be called.
        * Python 3 preparations - mass conversion of all xrange()
calls to range().
        * Created the special check_types.is_filetype() function for
checking for files in all Python versions.
        * Python 3 - eliminated an unneeded xrange call.
        * Python 3 - eliminated the use of the map() function, as this
behaves differently in Python 3.
        * Python 3 - removed the use of the string.lower() function as
it is missing in Python 3.
        * Python 3 fix for the relax information printout.  The try
blocks seem to now operate slightly differently in Python 3.
        * Python 2 fixes - the Python 3 fixes for the ScientificPython
module imports broke Python 2.
        * Python 3 - the cStringIO.StringIO import switches to
io.StringIO if missing.
        * Python 3 - relative module paths are now used for the test
suite runner.
        * Python 3 fixes for the version module for catching empty lists.
        * Python 3 fix - ensure an integer is actually an integer
(division now converts ints to floats).
        * Python 3 - fixes for the renaming of the Queue package.
        * Python 3 - converted the last of the except error catching
statements to be Python 2.4+ compatible.
        * Python 3 - removal of the use of the string.atoi and
string.atof functions.  These have been depreciated since Python 2.0!
They have been replace by the int and float functions.
        * Python 3 - a number of fixes for running the
ScientificPython modules in relax on Python 2 and 3.  This includes
relative imports, converting raise statements to function calls,
removal of the use of many string module functions which do not exist
in Python 3, etc.
        * Python 3 - modified some except statements to be Python 2.4+
compatible in a ScientificPython module.
        * Python 3 - converted some print statements to function calls
in the ScientificPython modules.
        * Python 3 - fix for an os.chmod() call by using the stat
module rather than the number 0775.  The number 0755 is no longer
valid in Python 3.
        * Python 3 - a pile of relative path fixes for many relax modules.
        * Python 3 - removed the use of the types module from
generic_fns.sequence.  The relax arg_check module is now being used
instead.
        * Python 3 preparations - removed all of the string module
functions which no longer exist in Python 3.  These functions are part
of the strings themselves now.
        * Improvements for the relax test suite synopsis for when the
wxPython module is missing or broken.  This is simply a printout
improvement.
        * Python 3 preparations - removal of some unneeded xrange() calls.
        * Python 3 preparations - the data package now really does use
the absolute path for its module imports.
        * Python 3 preparations - the data package now uses absolute
imports for all its modules.
        * Python 3 preparations - eliminated the use of the
types.ListType object.
        * Python 3 preparations - absolute module path fixes.
        * Python 3 preparations - support for both Python 2
__builtin__ and Python 3 builtins modules.
        * Python 3 preparations - absolute module path fix.
        * Python 3 preparations - more exception handling updates for
all Python 2.4+ versions.
        * Python 3 preparation - all raising of RelaxErrors is now
Python 2.4+ compatible.
        * Python 3 preparations - error handling is now Python 2 and 3
compatible in the relax_io module.
        * Python 3 preparations - converted the relax prompt/script
interpreter to be Python 2 and 3 compatible.
        * Python 3 preparations - removed the use of the types.ClassType object.
        * Python 3 preparations - compatibility for both the Python 2
cPickle and Python 3 pickle modules.
        * Python 3 preparations - all usage of string.split() and
string.strip() has been eliminated.
        * Removed the completely unused gui.components.conversion module.
        * Removed an unused import (which was breaking relax in Python 3).
        * Python 3 preparations - all os.popen3() instances in relax
have been replaced by the subprocess module.
        * Python 3 preparations - eliminated the use of the os.popen3
function from the info module.
        * More exception handling changes to be Python 2.4+ compatible.
        * Python 3 preparations - exception handling fix to be Python
2.4+ compatible.
        * Python 3 conversions using 2to3.
        * Updated the Python 2 to 3 checklist document for the
shifting of the 'relax' file to 'relax.py'.
        * Python 3 preparations - removed all usage of the xrange() in
the generic_fns package as none are needed.
        * Python 3 preparation - eliminated the unneeded use of xrange().
        * Python 3 preparation - the use of an absolute module path for import.
        * Python 3 preparations - the auto_analyses package is now
fully Python 2 and 3 compatible.
        * Python 3 preparation - the auto_analyses package now uses
absolute paths for the module imports.
        * Python 3 preparations - the use of the queue module in the
status module is now compatible with 2 and 3.
        * Python 3 preparations - the GUI tests are now fully Python 2
and 3 compatible.
        * Python 3 preparations - the queue modules for both Python
versions are now supported in the GUI tests.
        * Python 3 preparations - the test_suite.gui_tests package now
uses absolute module path imports.
        * Python 3 preparations - the unit tests are now fully Python
2 and 3 compatible.
        * Python 3 preparation - all of the _generic_fns unit tests
now use absolute module imports.
        * Python 3 preparations - all the _prompt unit tests now use
absolute module imports.
        * Python 3 preparation - removed all xrange() calls from the
unit tests, these are not needed.
        * Last Python 3 compatibility update for the system tests -
they are now both Python 2 and 3 compatible.
        * Python 3 preparation - the test_suite.system_tests package
now uses the absolute module path for imports.
        * Python 3 preparation - changed the import of SystemTestCase
to use the absolute module path.
        * Removed all of the xrange() calls from the system tests as
these are not necessary.  This is in preparation for Python 3.
        * Some changes in preparation for Python 3.
        * Removed the 'force flag' text from the RelaxWarning messages
output by the bruker.read user function.  The force flag arguments of
the generic_fns.mol_res_spin.name_spin() and
generic_fns.mol_res_spin.set_spin_isotope() functions can now be set
to None to suppress the text.
        * Fixes for the checks in the Mf.test_mf_auto_analysis() GUI
test for the recent test suite data changes.
        * The CSA setting in the model-free auto GUI analysis now
defaults to the '@N*' spin ID.  Previously no spin ID was being used
so that the protons where also having their CSA values set to that of
the nitrogens.  Now the execution checking code skips the proton CSA
check.
        * Added star versions of the standard spin IDs to the spin ID
GUI element (e.g. '@N*', '@H*').
        * Fix for the comment on the 'Export' button in the BMRB export window.
        * Lots of editing of the model-free GUI section of the user manual.
        * Fix for the Relax_data.test_delete system test for the
changes to the relax_data.read user function.
        * Fix for the Relax_data.test_read unit tests for the
relax_data.read user function changes.
        * Fix to the Dasha system test needed for the changes to the
relax_data.read user function.
        * Fix for the N_state_model.test_monte_carlo_sims due to the
changed sphere.pdb test suite file.
        * Relaxation data is no longer loaded by relax_data.read if
the values and errors are both None.
        * Modified the Mf.test_dauvergne_protocol system test to catch
bug #20197 (https://gna.org/bugs/?20197).  The sphere test data NE1
and HE1 data is now being used in this system test, triggering the
bug.
        * Small change to the sphere model model-free test suite data.
 The trptophan indole data is now merged into the last residue (a
glycine) to catch bug #20197 (https://gna.org/bugs/?20197).
        * The overfit_deselect() printouts for all specific analyses
are now regularised and match the model-free printouts.
        * All overfit_deselect() methods now accept and use the
verbose argument.
        * Printouts for the over-fitting deselection of spins are
suppressed for the back-calculation of relaxation data.  This affects
the model-free Monte Carlo simulations, improving the output.
        * More improvements to the model-free over-fitting deselection
printouts.
        * Improved the model-free overfitting deselection printouts
prior to optimisation.  Only a single message per spin is now given
when the spin is deselected, minimising the amount of output.
        * Added a tryptophan NE1 data set to the sphere model-free
model test data.  This is in preparation to catch bug #20197
(https://gna.org/bugs/?20197).  The scripts have also been updated for
the newer relax designs.
        * Added the data_check Boolean argument to all of the specific
analysis overfit_deselect() methods.  This allows the unit tests to
pass.


    Bugfixes:
        * Fix for the State.test_load_state_no_gui() GUI test - the
data pipe bundle is now given.
        * Another attempt at fixing a nasty circular import in the relax GUI.
        * Fix for the relax user manual compilation.  The full path
for an icon in the graphics directory was being used.
        * API documentation fix - a circular import has been broken.
This was only a circular import when the gui package is imported from
an external program like Epydoc.
        * PDB format fix for the atom numbers of zero - the atom
number should be consecutive and unique.
        * Big fixes for the running of the GUI tests.  The GUI
initialisation and termination, when not running in GUI mode, is now
preformed outside of the Python unittest framework.  The GUI was
previously initialised in the setUp() method for all GUI tests, but
for some reason this caused abrupt terminations of the
GUI_test_runner.run() method.  This run method, when finished, would
not return to the Test_suite_runner but would cause the Python
interpreter to silently die.  The result was that the test suite
summary would appear not to be printed out.
        * Python 2.3 and earlier fix for the unit test module for the
float module.  The 'tests' class variable was renamed so that the test
suite does not think that it is a unit test.
        * Bug fix for the unit test runner - this restores
functionality broken all the way back at r12100.  The TEST_SUITE_ROOT
constant no longer exists, so the check for it is now skipped.  This
allows tests to be run directly by the script.
        * Python 2.4 and earlier fixes for the Queuing module.  The
TaskQueue class from http://code.activestate.com/recipes/475160/ which
was added to Python 2.5+ has been added to the compat module.  This
module is now used for all imports of the Queue class for all Python
versions.
        * Test suite bug fix - the GUI tests now cleanly terminate the
interpreter thread.  This allows the test suite to terminate normally.
 With different Python versions on different operating systems, this
could sometimes cause the test suite to freeze at the end, the final
printout to be missing, or other strange behaviour.
        * Python 2.3- fixes - the Modelfree4 and Dasha system tests
are now skipped if the subprocess module is missing.
        * Python 2.3 and earlier fix for the
Test_relax_re.test_search() unit test.  The unittest assertTrue() and
assertFalse() methods do not exist, so assertEqual() is used instead.
        * Python 2.3 and earlier fix - the subprocess module is only
imported when present.  This is for the stereochem_analysis
auto-analysis, but the import kills all of the auto-analyses.
        * Python 2.3 fix - eliminated the superfluous
operator.itemgetter() call in the diffusion tensor code.
        * Python 2.4 and earlier fix for the GUI.  Try-except-finally
statement blocks are not supported, so these have to nested in two try
statements.
        * Python 2.4 fix - the unit test runner no longer uses the
builtin set() method.
        * Python 2.4 and lower fix for the pipe_loop() generator
method.  In these Python versions, a 'try' block with a 'finally'
statement cannot contain 'yield' statements.  This work around should
be compatible with all Python versions.
        * Python 2.4 fixes - the ctypes module does not exist in
Python versions 2.4 and lower.  This is only used for some
non-essential functionality on MS Windows, so now it is deactivated if
not present.
        * Fix for bug #20213 (https://gna.org/bugs/?20213).  The
problem was that the generic_fns.sequence.generate() function was
searching for a spin based on its spin ID generated from the spin name
and not spin number.  Hence two spins with the same name but different
numbers were treated as the same spin, and only data from one was
being generated via the copy() function.
        * Bug fix for wxPython 2.9.4.0 - the unsetting of the alpha
mask for all bitmap images should now work.  The
wx.Bitmap.SetMaskColour(None) call does not work, so instead a
wx.Colour() instance is passed in instead.
        * Fix for bug #20210 (https://gna.org/bugs/?20210) - relax now
runs again without having wxPython installed.
        * Bug fix for the BMRB system test initialisation for when the
bmrblib module is missing.  The base __init__() method needs to be
initialised first.
        * Fix for bug #20201 (https://gna.org/bugs/?20201).  The
bruker.read user function can now handle the situation where multiple
spins per residue are already loaded prior to the user function call.
The isotope value from the DC file is now translated to the element
name and this is used as part of the spin ID string.
        * Fix for bug #20197 (https://gna.org/bugs/?20197) - the PyMOL
and Molmol macro failure.  The macro creation now only operates on
spins called 'N' and assumes these are the backbone nitrogens.  The
sidechain tryptophan indole NH data will need to be detected and added
later.
        * Fix for bug #20198 (https://gna.org/bugs/?20198) - the
relaxation data back-calculation error.  The problem was that the call
to the model-free overfit_deselect() method was deselecting any spins
lacking relaxation data.  This should not happen, as no spins need to
have relaxation data for this calculation.

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-announce mailing list
relax-announce@gna.org

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-announce

Reply via email to