Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 54b460742a055db348103c939d064b8c > files > 317

python-mdp-3.0-1mdv2010.2.noarch.rpm

MDP-3.0:

2011-01-12: FIX: import NormalizeNode in mdp.nodes
2011-01-12: FIX: no return in IdentityNode method
2011-01-12: FIX: test_scikits should be run only if scipy is available
2011-01-12: FIX: tell epydoc that nodes are documented in rst
2011-01-11: NEW: convert scikits docstrings to rst This way I'm only getting
            missing target warnings and the text is parse as rst. No monospace
            font :)

2011-01-11: FIX: fix some epydoc warnings, add some links and a forgotten
            export
2011-01-07: MISC: duplicate some useful code among the three wrappers last
            merge from scikits branch.

2011-01-11: ERF: make scikits default docs rst-compatible
2011-01-10: Merge branch 'namespace_fixup' Conflicts:
            mdp/__init__.py
            mdp/nodes/__init__.py
            mdp/utils/__init__.py

            Add missing comma in __all__ in mdp/__init__.py.

2011-01-10: OTH: shorten test name
            (Looked awkward in py.test output.)

2011-01-10: NEW: introduce MDPNSDEBUG environment variable This variable
            controls namespace fixup debugging messages.

            Also remove 'advanced string formatting' in favour of printf-style 
            statements (for python 2.5 compatibility).

2011-01-10: FIX: made the one scikits test a bit more useful
2011-01-10: FIX: there is no problem with output_dim in scikits classifiers 
            because they are identity nodes

2011-01-10: DOC: documentation of output_dim problem in scikits.learn wrappers
2011-01-10: FIX: check for existence of im_func in classifier wrapper
2011-01-10: FIX: fail meaningfully when trying to set output_dim
2011-01-10: FIX: added docstrings to scikits wrappers
2011-01-10: FIX: Cache mechanism called pre_execution_check with too much
            information
2011-01-10: FIX: broken variable for disabling scikits.learn
2011-01-10: FIX: fix wrapper string in scikits nodes
2011-01-10: FIX: fixed hard-coded scikits test.
2011-01-10: FIX: fixed a bit pp_remote support. I commented out the test.
            There's no point in having a test that requires a working ssh
            setup. we should move that code in the examples. TODO: I still did
            not manage to test the remote support properly: it does not work
            if ssh spits some session information on startup :-(

2011-01-10: FIX: fix namespace issues with scikits nodes.
2011-01-10: FIX: Made the straight forward fixes for pp 1.6 support, not sure
            if this is working now.
2011-01-10: Merge remote branch 'origin/master'
2011-01-10: Merge a branch with some scikits work I'm doing this as a merge
            instead of rebasing, because the work was really done in parallel,
            and e.g. Tiziano removed the file, which I moved and updated.

2011-01-10: FIX: make scikits support depend on version 0.5 Version 0.4
            breaks... Version 0.5 at least does learn & execute.

2011-01-10: FIX: move scikits test into mdp/tests/
2011-01-10: Merge remote branch 'origin/master' Conflicts:
            mdp/test/test_pp_local.py

2011-01-10: FIX: Updated local scheduler to work with latest pp version 1.6.
2011-01-10: FIX: fix name leaking in nodes/__init__.py
2011-01-10: FIX: add scikits to list of dependencies in testall.py
2011-01-10: FIX: Fixed local Parallel Python tests.
2011-01-10: FIX: make test_ISFANode more robust.
2011-01-10: FIX: remove stale test_scikits.py file
2011-01-10: NEW: merged constant_expansion_node branch. Adds new
            GeneralExpansionNode thanks to Alberto Escalante.

            Tests and node had to be adjusted to merge cleanly and to follow
            new conventions. TODO: pseudo_inverse method is quite fragile,
            why?

2011-01-10: ERF: Added native traceback flag to IDE test run template.
2011-01-09: FIX: remove bitrot in test_pp_*.py. This makes the local tests
            pass with parallel python 1.5.4. Remote tests still fail because 
            amongst other things the server list must be passed explicitely.

            The tests fail horribly with newer pp version.

2011-01-09: FIX: kill epydoc warnings
2011-01-09: Revert "DOC: migrated class.__doc__ to rst for nerual_gas_nodes" 
            This reverts commit 2c2a4cd72ecd7d2dbb2032dd7db4f0754b3ba846.

2011-01-07: FIX: make joblib version checking more robust e.g.
            joblib.__version__='1.0.0-gitABCEDFG' should pass.

2011-01-07: FIX: be more tolerant against missing modules in scikits.learn. 
            depending on the installation procedure, user may or may not have
            some of the scikits.learn modules. we just wrap the modules we
            find.

2011-01-07: FIX: add wrongly removed 'scikits' namespace from mdp.nodes.
2011-01-07: FIX: wrong version in scikits.learn info item.
2011-01-07: ERF: Merged "scikits" branch into "master". Conflicts:
            mdp/__init__.py. Fixed new config syntax and generic_tests.

2011-01-06: FIX: fixed testall script. now it works. the script should be
            ported to use subprocess, so that it runs OS agnostic.

2011-01-05: ERF: improved testall.py
2011-01-05: DOC: updated CHECKLIST for release.
2011-01-05: FIX: Slightly changed the include_last_sample argument to fix the
            problem with the standard parallel fork implementation.
2011-01-05: FIX: fix test broken due to new keyword in SFANode.
2011-01-05: FIX: added include_last_sample to SFA2Node too.
2011-01-05: ERF: added include_last_sample switch to SFANode. Motivation and
            discussion can be found in this thread: 
            http://sourceforge.net/mailarchive/forum.php?thread_name=20100826183424.GF26995%40tulpenbaum.cognition.tu-berlin.de&forum_name=mdp-toolkit-users

2011-01-05: FIX: clean up __all__ in mdp/__init__.py numx* should not be in
            all. Quoting Tiziano:

            > numx was not in __all__, and therefore was not documented by
            epydoc.
            > Once it is added to __all__, indeed things break heavily. well,
            I think even it was by mistake, it is a good thing that numx is
            not in __all__. mdp.numx is an *internal* thing. people doing from
            mdp import * should not get numx. so, leave it like this and we 
            don't even need a workaround for epydoc.

            While at it, remove whitening which was already gone and make the
            list alphabetical.

2011-01-04: Merge branch 'cache' Conflicts:
            mdp/__init__.py

2011-01-04: FIX: make setup.py run on also on python3 The code must run on all
            supported python versions.

            try: ... except Type, v: ...

            file()

            cannot be used.

            While at it, I'm changing exec() to re.match. It's simpler.

2011-01-04: FIX: python2.5 has no itertools.product
2011-01-04: ERf: added script to test all python versions and dependencies.
2011-01-04: FIX: fix name error in configuration.py
2011-01-04: ERF: added way of disabling optional dependencies optional
            dependencies can be disabled setting the env variable
            MDP_DISABLE_DEPNAME

2011-01-04: ERF: remove long deprecated helper functions. pca and fastica
            survive because we use them as ad in the the site and because most
            probably they are the only one in real use out there.

2011-01-04: FIX: fix test failures due to previous commit.
2011-01-04: ERF: cleaned up mdp/__init__.py. configuration is now a separate
            file. the logic of numx loading has been changed (again!).
            numpt/scipy can not be treated as an external dependency.

2011-01-04: FIX: fix generic node test failures for
            TimeFrameSlidingWindowNode.
2011-01-04: ERF: support iterables in generic node tests.
2011-01-03: FIX: MDP depends on joblib >= 0.4.3
2011-01-03: FIX; fixed git log format in CHECKLIST
2011-01-03: DOC: add __homepage__ variable in __init__.py
2011-01-03: FIX: removed useless file.
2011-01-03: ERF: updated author and maintainers, put version in one single
            place.
2011-01-03: DOC: changed reference to installation instructions
2011-01-03: ERF: removed our names from COPYRIGHT. It makes little sense to
            keep up-to-date the list of maintainers in this file. we have one
            authoritative source: the development.rst page.

2010-12-31: FIX: fixed TimeDelayNode docstring rst formatting
2010-12-31: NEW: new TimeDelay and TimeDelaySlidingWindow nodes. Thanks to
            Sebastian Höfer!

2010-12-31: DOC: specify dependency in svm nodes.
2010-12-31: FIX: change order of nodes in nodes/__init__.py __all__ order is
            somehow arbitrary, but better than before. it is needed for the
            automatic node list generation in the web site.

2010-12-31: DOC: migrated class.__doc__ to rst for svm family
2010-12-31: FIX: logic and wording of the symeig dependency test were wrong. I
            don't have a 64bit machine to test that the function in 
            mdp/utils/routines.py still does the right thing. if it does not, 
            just change mdp.config.has_symeig == '...' to 
            mdp.config.has_symeig != '...'
            ;-)

2010-12-31: DOC: migrated class.__doc__ to rst for misc_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for classifier_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for expansion_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for nerual_gas_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for regression_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for rbm_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for lle_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for em_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for fda_nodes
2010-12-31: DOC: migrated class.__doc__ to rst for sfa family
2010-12-31: DOC: migrated class.__doc__ to rst for ica family
2010-12-31: DOC: migrated class.__doc__ to rst for nipals
2010-12-31: DOC: migrated class.__doc__ to rst for pca_nodes
2010-12-31: DOC: migrate convolution nodes to rst docstring
2010-12-31: DOC: fixed migration to rst docstrings for xsfa_nodes.
2010-12-30: Merge branch 'feature/libsvm_291_support' Conflicts:
            mdp/__init__.py
            mdp/test/test_contrib.py

2010-12-30: FIX: failing dtype_consistency_tests with numpy as backend The
            config.has_symeig logic was that config.has_symeig is False when
            using the _fake_symeig compatibility wrapper. Dtypes were selected
            based on that.

2010-12-30: FIX: make sure mdp.config.has_{numpy,scipy} are always set, really
2010-12-30: FIX: make sure mdp.config.has_{numpy,scipy} are always set
2010-12-30: FIX: Don’t try to fetch version of numx_version twice.
2010-12-29: ERF: Put SVM tests into a separate file. Also: Fix
            skip_on_condition on class.
2010-12-27: DOC: rename ExternalDepFail to -Failed and document stuff
2010-12-27: FIX: test_seed failured when testing running bimdp.test() after
            mdp.test() The reason was that when the test functions were
            imported from mdp.test into bimdp.test, they still referenced
            mdp.test._SEED global variable. But the --seed option in bimdp is
            independent, so it was set to a different random seed. By
            duplicating test_seed.py, a second independent global is created.

2010-12-27: Add a test for separable data.
2010-12-27: NEW: check if joblib is >= 0.4.6
2010-12-27: ERF: Restructured the libsvm tests.
2010-12-27: OTH: make COPYRIGHT valid rst This makes is easier to include in
            the webpage.

2010-12-27: Merge branch 'config_simplification' Conflicts:
            mdp/__init__.py

            This merge commit contains an adaptation of caching to the new 
            framework.

2010-12-27: NEW: convert caching_extention.py to rst
2010-12-27: Merge branch 'rst_docstrings' Conflicts:
            mdp/signal_node.py

2010-12-27: Merge branch 'cache' Conflicts:
            mdp/caching/caching_extension.py

2010-12-27: Merge commit '06007d3e8987a6c8574fd63c7608b37e9e657e66'
2010-12-27: ERF: Added test for execute_method in classifiers.
2010-12-27: ERF: Add validation for libsvm parameters.
2010-12-27: ERF: Get rid of superfluous parameter handling. Use svm_parameter
            directly.
2010-12-27: FIX: Get the libsvm tests running for versions >=2.91. TODO: * The
            new interface still needs some polishing.
            * We need to test the RBF classifier. It won’t work right now.
2010-12-24: FIX: fix test of PCANode for degenerate case, it was failing
            occasionally.
2010-12-24: removed now useless copy method overwriting in NoiseNode
2010-12-24: Merge branches 'deepcopy' and 'master'
2010-12-24: ERF: added additional tests for node and flow deepcopy This tests
            fail in master branch righ now, because lambdas can not be
            pickled!

2010-12-24: ERF: added additional tests for node and flow deepcopy
2010-12-24: Merge branch 'master' of
            ssh+git://mdp-toolkit.git.sourceforge.net/gitroot/mdp-toolkit/mdp-toolkit
2010-12-24: FIX: fixex bimdp.test() under windows. The FIX introduced with
            dfa8ec5a0d367941e4c297325a43361d579f8bbd was not working on
            windows, because git does not support symlinks there. It has been
            fixed differently now, and it should work reliably under any
            system, I hope.

2010-12-22: ERF: Improved the exception handling for failing training argument
            check (user now gets a better error message).
2010-12-22: changed my email address in copyright and setup
2010-12-21: Merge remote branch 'new_guidelines'
2010-12-21: FIX: now bimdp.test() really works as advertised!
2010-12-21: FIX: regenerate run_tests.py script for running tests without
            py.test
2010-12-03: OTH: remove uses of deprecated dict.has_key()
2010-12-03: OTH: use with_statement in signal_node
2010-12-18: DOC: improved docs of caching mechanism
2010-12-18: FIX: possible to switch caching path while extension active
2010-12-18: FIX: caching started at second execution because of automatic
            setting of dtype, input_dim
2010-12-18: NEW: caching extension can now cache individual classes or
            instances
2010-12-18: DOC: a few fixes to the cache extension docs
2010-12-09: NEW: Added parallelization for NearestMean and KNN classifier.
            Also updated NearestMeanClassifier attribute names to avoid
            confusion.
2010-12-09: DOC: Added explanation in _default_fork docstring.
2010-12-09: DOC: Improved code documentation.
2010-12-03: FIX: copy with deepcopy everywhere, raise DeprecationWarning on
            old API Since Node.copy() is a public function, changing the
            allowed parameters might be bad. So just ignore the parameter and 
            raise a DeprecationWarning if the parameter has a non-None value.

            >>> import mdp
            >>> node = mdp.Node()
            >>> node2 = node.copy(protocol=1)
            __main__:1: MDPDeprecationWarning: protocol parameter to copy() is
            ignored

2010-12-03: FIX: Patch for using deepcopy instead of pickle for Node and Flow 
            Hi all,

            here is a patch and test script for replacing the pickle with
            deepcopy in Node.copy() and Flow.copy(). The signature of the copy
            function changes (the protocol keyword is no longer necessary), I
            don't know what the proper way to handle this is (deprecation
            error?), so I'll leave it up to you guys.

            Thanks for all the efforts, we get very positive feedback from all 
            users of mdp and Oger!

            David

2010-12-02: OTH: remove redundant shogun version checking
2010-12-02: NEW: add tests for the new config architecture
2010-12-01: OTH: Convert config.has* to an attribute I have suspicions that
            using a lambda function was causing problems with the process
            scheduler.

            git grep -l -E 'config.has_'|xargs sed -r -i
            's/(config.has_[a-z_]+)\(\)/\1/g'

2010-12-01: OTH: simplify mdp config discovery Create
            ExternalDepFound/ExternalDepFail objects immediately after 
            attempting import. This way there's no need to reverse engineer 
            where the symeig implementation comes from.

            TODO: test_process_schedule fails!

2010-12-01: OTH: simplify numpy/scipy imports
2010-12-01: OTH: make ExternalDep objects have boolean value
2010-12-02: OTH: replace 'map()' with 'for:' following 2to3's advice
2010-12-02: OTH: remove redundant OrderedDict implementation I'm also moving
            the OrderedDict recipe to a separate file, because it's kind of
            logically separate and will not be used in newer versions of
            Python anyway.

2010-12-01: OTH: mdp.test() should not cause SystemExit Function
            py.cmdline.pytest calls py.test.cmdline.main, but also raises
            SystemExit. Just call the latter one, so the interactive session
            can continue.

2010-12-01: Change __license__ to 'Modified BSD' in source code The license
            text was already changed in the documentation, but not in the
            source code.

2010-11-30: NEW: Added the execute_method argument and attribute to the
            Classifier class. This makes it possible to get the classification
            results from a normal flow without resorting to monkey patching
            (which makes nodes unpickelable).
2010-11-30: ERF: Improved code readibility.
2010-11-30: NEW: Added iadd method to Flow. Also fixed the error strings.
2010-11-29: NEW: Added parallel version of Gaussian classifier.
2010-11-29: ERF: Added helper function to combine CovarianceMatrix instances.
2010-11-24: NEW: Added KNN classifier.
2010-11-24: FIX: Fixed wrongly created classifier BiNodes.
2010-11-24: NEW: Added nearest-mean classifier node.
2010-11-24: FIX: Updated test name.
2010-11-24: ERF: Some cleanup in the GaussianClassifier. Added an exception if
            any class covariance matrix is singular.
2010-11-23: BRK: Renamed GaussianClassifierNode to GaussianClassifier to
            follow the general classifier convention (otherwise a special case
            would be needed in the BiMDP autogenerated code).
2010-11-23: FIX: Updated BiMDP test for the new siganture of FDANode.
2010-11-23: BRK: Updated FDANode siganture to follow the newer conventions
            from ClassifierNode (labels instead of cl) and the PCA/SFANode (n
            instead of range).
2010-11-09: OTH: move PROJECT_GUIDELINES and NEW_DEVELOPER_INFO to
            development.rst in docs
2010-11-01: NEW: convert neural_gas_nodes.py and rbm_nodes.py docstrings to
            rst
2010-11-01: NEW: add reference to JoMLR article
2010-11-01: NEW: convert mdp/nodes/xsfa_nodes.py docstrings to rst
2010-11-01: NEW: convert mdp/__init__.py and mdp/nodes/signal_node.py
            docstrings to rst
2010-11-01: Merge commit 'c3bdc14c092b92c214f8bd76002be565706f07ca'
2010-11-01: FIX: Fixed bug in node join, leading to inconsistent state under
            certain conditions with FlowNode.
2010-10-31: ERF: Added copy_callable option for thread scheduler.
2010-10-16: FIX: Updated failing unittest.
2010-10-16: FIX: Fixed the parameter names in the switchboard factory.
2010-10-15: BRK: Updated the remaining switchboards.
2010-10-15: BRK: Started to replace the x_ and y_ arguments in 2d switchboards
            with a single _xy argument. So far only the
            Rectangular2dSwitchboard is done.
2010-09-26: FIX: Correctly distinguish Flow and BiFlow in trace inspection
            execute.
2010-09-25: FIX: Fixed bug in ParallelFlowNode and added unittest.
2010-09-14: DOC: Fixed wrong docstring.
2010-09-14: BRK: Improved extension context manager and decorator to only
            deactivate extensions that were activated by it. This prevents
            unintended side effects. Corresponsing tests were added.
2010-09-14: FIX: Fixed outdated import.
2010-09-14: Merge commit '4671fc2511b3446e57afcc1974d46f15ac92cb5f'
2010-09-14: BRK: Improved the dimension consistency handling in FlowNode, also
            making the dimension setting stricter. This is to prevent really
            strange errors in some corner cases (e.g. when the output_dim is
            automatically set in execute). One generic test had to be dropped,
            but explicit test for the dimension setting were added.
2010-09-14: ERF: Streamlined the parallel fork template method.
2010-09-14: FIX: Fixed the test node in the test_execute_fork unittest.
2010-09-14: ERF: Removed the ParallelBiNode, since it is no longer needed.
2010-09-14: Revert "FIX: Fixed small bug in dimension consistency check." This
            reverts commit 0b37100894f08faf3653bab09bc4b5fb21705d72.

2010-09-13: ERF: Added more unittests for parallel. One still fails because an
            improvement in FlowNode is needed.
2010-09-13: DOC: Added comment on necessary extension context improvement.
2010-09-13: FIX: Fixed small bug in dimension consistency check.
2010-09-13: ERF: Improved the threaded scheduler (better exception handling).
2010-09-13: FIX: Fixed parallel bug, missing argument in callable.
2010-09-13: ERF: Turned the use_execute_fork property into a normal method.
2010-09-12: FIX: Added the missing property decorators (this was dangerous,
            since a function attribute is cast as True)..
2010-09-12: FIX: Fixed bug in ParallelNode.
2010-09-12: FIX: Updated ParallelFlow to use correct execution result
            container.
2010-09-12: FIX: Updated __all__ list.
2010-09-10: OTH: python2.5: remove PEP 3101 formatting
2010-07-30: OTH: python2.5: 'with' and 'as'
2010-09-09: Remove next-to-last import numpy from mdp codebase numx rules!

2010-09-09: ERF: Changed the node purging mechanism in parallel to no longer
            use a special extension method in FlowNode. Also some smaller
            comment updates.
2010-09-09: NEW: MDP migrates to BSD license!
2010-09-09: BRK: Clarfied some subtle aspects of the parallel API and updated
            the code to improve consistency.
2010-09-09: Make git display python diffs better
2010-09-08: FIX: Some smaller fixes in the updated parallel code.
2010-09-08: FIX: The parallel BiMDP tests are running again. Also some more
            cleanup in MDP parallel.
2010-09-08: FIX: The standard MDP tests now all run again after the changes in
            parallel.
2010-09-07: BRK: Continued work on the parallelization update, not working
            yet.
2010-09-06: BRK: Started to modify the parallel node forking. The
            is_bi_training in BiNode is replaced with a use_execute_fork in
            the ParallelExtensionNode base class. This is more logical, less
            complicated and a first step towards enabling more parallelization
            patterns.
2010-09-02: OTH: the caching mechanism could be simplified with the latest
            joblib
2010-08-31: DOC: Improve docs of caching mechanism, keywork argument for
            verbosity of cache
2010-08-26: FIX: SFANode.train fails with a meaningful error if trained with
            x.shape = (1, n)
2010-08-26: Fix --seed option for py.test >= 1.3 Py.test in version 1.3 added
            a feature to skip conftest.py files when they are exactly the
            same. This helps when a directory is copied to a subdirectory of
            itself and the config files are not idempotent. Unfortunately,
            this runs afoul of our logic to add the --seed option everywhere,
            irrespective of wheter py.test is run implicitely for the whole
            mdp-toolkit or for mdp or for bimdp or for both. The solution is 
            to modify one of the conftest.py files to be unidentical.

            Tested with with py.test 1.2.1 and 1.3.3.

2010-08-18: OTH: Simplify docstring formatting.
2010-08-25: NEW: FANode detects singluar matrices
2010-08-24: ERF: fftpack does not support float >64; those types are removed
            from the supported list for ConvolutionNode
2010-08-24: FIX: Remove forgotten print statements
2010-08-24: ERF: ISFA supports float>64
2010-08-23: ERF: added python version to mdp.config
2010-08-19: ERF: Add complex256 to list of unsafe dtypes
2010-08-19: FIX: Generic tests failed for MDPNUMX='numpy' When symeig and
            scipy.linalg.eigh are not present, MDP falls back into using
            numpy.linalg.eig . This does not support large floating point
            types, for some reasons, which caused the tests to fail.

2010-08-17: ERF: Updated the classifier nodes that were overlooked in the big
            PreserveDimNode cleanup.
2010-08-17: Merge branch 'supporteddtypes' Conflicts:
            mdp/nodes/misc_nodes.py

2010-08-17: ERF: Clarify questions about support for float64 only
2010-08-17: FIX: Fixed generic tests, now check that PreserveDimNode raises
            right exceptions.
2010-08-17: ERF: Added tests for PreserveDimNode.
2010-08-17: ERF: Wrapped up the PreserveDimNode changes. Unable to fix the
            generic unittests, somebody has to fix those.
2010-08-16: ERF: Refined the choice of supported dtypes
2010-08-16: ERF: Redefine default supported dtypes to be 'Floats', and modify
            all nodes accordingly
2010-08-16: ERF: Further simplified Cumulator mechanism; added test After
            digging into numpy's C code, we decided that at present 
            numpy.concatenate does the right thing, i.e. it creates a buffer
            large enough and uses memcpy to copy the data in each array.

2010-08-16: FIX: py.test failed with an error reporting a duplicated 'seed'
            option In py.test 1.3.3 they changed the sequence in which the
            conftest.py
               files are loaded. In our case, the /mdp/test/conftest.py file
            was
               laoded before the /conftest.py file, which tried to redefine
            the
               optione 'seed', causing an error.

2010-08-14: ERF: Simplified concatenation mechanism in Cumulator The new
            solution is much faster and still avoids direct calls to 
            numpy.concatenate, that performs pairwise concatenations and
            wastes a lot of memory.

2010-08-14: FIX: Cumulator had no docstring
2010-08-10: FIX: Added missing exit target check in BiFlow. Changed the
            unittest to better test this case.
2010-08-10: ERF: Changed BiFlow.execute to always return a tuple (x,msg), even
            if the msg is empty. The previous changing return signature was
            too likely to cause errors.
2010-08-10: DOC: Small fix in docstring.
2010-08-10: DOC: Small fix in comment.
2010-08-09: ERF: Added check for case when both x and msg are None to produce
            better error message.
2010-08-09: ERF: Removed duplicate verbose print.
2010-08-08: FIX: Fixed the missing import for PreserveDimNode and fixed the
            broken generic tests for these nodes by excluding them. This is
            only a provisional fix.
2010-08-08: ERF: Rewrote the creation of the autogenerated BiNode classes.
            Went back to dynamically creating the classes at runtime. Now use
            a node blacklist instead of the previous whitelist. These two
            changes allow the import of nodes with dependencies, like the SVM
            nodes.
2010-08-08: NEW: Added new PreserveDimNode base class for input_dim ==
            output_dim. This should avoid duplication of the set_dim methods.
2010-08-05: ERF: Tweaked the hinet CSS.
2010-08-05: DOC: Improved the ParallelFlow docstrings.
2010-07-30: DOC: Small improvements to the corutine decorator docs.
2010-07-30: FIX: Removed some left over stop_message references.
2010-07-29: NEW: extend namespace_fixup to bimdp
2010-07-29: ERF: rework fixup_namespace function and add tests
2010-07-27: FIX: NodeMetaclass and ExtensionException where imported but not
            in __all__
2010-07-27: FIX: remove helper_funcs module from mdp namespace, they are
            imported into mdp
2010-07-27: NEW: Added a simple run script to run the tests from a .py file
            (e.g. to use the Eclipse debugger).
2010-07-27: ERF: Optimized the switchboard gradient implementation (about 10x
            faster).
2010-07-27: ERF: Changed one more unittest to use scheduler context manager.
2010-07-27: ERF: Added context manager interface to Scheduler class and added
            unittests.
2010-07-27: ERF: Renamed callable_ to task_callable and made some small
            docstring updates.
2010-07-27: ERF: Removed unused imprts and updated docs.
2010-07-27: FIX: Fix double delete
2010-07-26: NEW: use sphinx links in mdp.parallel docstring
2010-07-25: FIX: remove del's of nonexistent symbols
2010-07-25: NEW: use fixup_namespace to clean up __import__
2010-07-25: FIX: missing comma in __all__ was concatentating names
2010-07-25: OTH: add import of fixup_namespace without actually using it This
            is seperate to check if there are no circular imports

2010-07-24: FIX: remove nonexistent name from __all__
2010-07-23: FIX: remove unused import of hotshot.log
2010-07-23: FIX: fix broken name delete
2010-07-23: FIX: fixed setup.py (remove refs to demo & contrib)
2010-07-23: FIX: convolution nodes are conditional on scipy.signal
2010-07-23: FIX: remove del of nonexistent symbol
2010-07-23: FIX: move pp_simple_slave_test.py to examples
2010-07-23: FIX: regenerate bimdp wrappers for classifiers
2010-07-23: ERF: convert parallel python tests to py.test and disable them
2010-07-23: FIX: TODO had the wrond line ending. Sorry everybody :-(
2010-07-23: FIX: Fix tests in test_nodes_generic with svm classifier nodes. 
            Add arguments to ShogunSVMClassifier and LibSVMClassifier to
            automatically set kernel and classifier on __init__. Add
            parameters to test_nodes_generic to use these arguments.

2010-07-23: DOC: updated TODO list
2010-07-23: NEW: Added new tests for Convolution2DNode
2010-07-23: FIX: removed contrib directory
2010-07-23: FIX: duplicate conftest.py twice, so py.test can be run without
            options, try 3 Previous version worked only under cygwin when on
            windows.

2010-07-23: ERF: PEP8
2010-07-23: DOC: The reason of the strange transformations in CumulatorNode
2010-07-23: FIX: Automatic test now cover everything, fixed a lot of stuff in
            the meanwhile!
2010-07-23: FIX: NormalNoise did not function properly
2010-07-23: FIX: KMeansNode failed on some special cases
2010-07-23: FIX: duplicate conftest.py twice, so py.test can be run without
            options, try 2 Previous version worked only when PYTHONPATH
            included mdp-toolkit/.

2010-07-23: ERF: Migrated the demos to the examples. Removed the tutorial
            demo.
2010-07-23: FIX: duplicate conftest.py twice, so py.test can be run without
            options Note: bimdp/test/conftest.py is a symbolic link to
            bindmp/test/conftest.py.
                 OTOH, conftest.py in the top directory is a little different.

2010-07-23: ERF: remove old run_coverage script The new way is:
             py.test --figleaf and the result go into html/.

2010-07-23: OTH: Renamed NEW_DEVELOPER_INFO.txt → NEW_DEVELOPER_INFO.
2010-07-23: ERF: Made tests for SVM classifiers, Convolution2D conditional on
            presence of nodes
2010-07-23: Merge branch 'test_cleanup' Conflicts:
            mdp/test/_tools.py

2010-07-23: FIX: fix broken conditional test for caching
2010-07-23: ERF: simplify testing by providing commonly used imports in
            test/_tools All testing files can just say
             from _tools import * and the get numx, numx_rand, mult, ...

            Py.test is not imported into _tools, so that it is easier to
            possible to import files which don't actually depend on py.test
            when it is not available.

            Also includes some tiny naming and space corrections.

2010-07-23: NEW: Conditional tests decorator; decorated test_caching tests
2010-07-23: FIX: use the right TESTDECIMALS in test_utils_generic
2010-07-23: ERF: convert utils tests to py.test
2010-07-23: NEW: add QuadraticFormException for QuadraticForm errors
2010-07-23: ERF: Caching now imported conditional on joblib
2010-07-23: Merge branch 'master' of
            ssh+git://mdp-toolkit.git.sourceforge.net/gitroot/mdp-toolkit/mdp-toolkit
2010-07-23: Merge branch 'master' into HEAD Conflicts:
            mdp/__init__.py

2010-07-23: ERF: Added *Cumulator and ClassifierNode to __all__
2010-07-23: OTH: Trying to push changes
2010-07-23: ERF: Caching tests moved to own file, updated to py.test style
2010-07-23: ERF: de-obfuscated code in config object
2010-07-23: Merge branch 'sprint_cache' Conflicts:
            mdp/__init__.py
            mdp/extension.py
            mdp/nodes/__init__.py
            mdp/nodes/convolution_nodes.py
            mdp/test/test_extension.py
            mdp/test/test_nodes.py
            mdp/utils/__init__.py
            mdp/utils/routines.py

2010-07-23: FIX: Windows specific fix.
2010-07-23: OTH: whitespaces
2010-07-23: ERF: make generic_test_factory a public function It is now even
            documented.

2010-07-23: OTH: Fixed whitespaces in convolution nodes
2010-07-23: DOC: describe the complicated big_nodes argument of
            _generic_test_factory
2010-07-23: NEW: tests can be run within python shell. You can run the tests
            with import mdp mdp.test()

            you don't need py.test installed!

2010-07-23: Merge branch 'sprint_conv2'
2010-07-23: ERF: Made import of Convolution2DNode conditional on presence of
            scipy
2010-07-23: ERF: Added method in config object to check for existence of
            arbitrary module by name
2010-07-22: FIX: remove nonexistent import from __all__
2010-07-22: ERF: Adding numpy and scipy to config.
2010-07-22: Merge branch 'sprint_variadic_cumulator'
2010-07-22: FIX: fix broken test_gradient. It was not useing the numx,
            numx_rand convention!!!
            >:-(

2010-07-22: FIX: Fixing an error in contrib tests.
2010-07-22: ERF: migrated bimdp tests to py.test
2010-07-22: FIX: remove unexistent test name
2010-07-22: NEW: Added convolution class and tests
2010-07-22: ERF: Merged master to convolution branch and removed vestigial
            file
2010-07-22: DOC: Update docs
2010-07-22: ERF: Cache extension migrated to own directory, tests updated
2010-07-22: NEW: Init for caching module
2010-07-22: OTH: Attempted refactoring cache extension in own directory, got
            metaclass conflict
2010-07-22: ERF: update gitignore for py.test gnerated files
2010-07-22: Merge branch 'test_framework' Conflicts:
            bimdp/test/test_binode.py
            mdp/nodes/misc_nodes.py

2010-07-22: NEW: Context manager for caching extension
2010-07-22: FIX: Fixed documentation and call with wrong argument
2010-07-22: DOC: Fixed error in documentation of context manager
2010-07-22: ERF: Deleted forgotten print statement
2010-07-22: NEW: activate_caching, deactivate_caching
2010-07-22: ERF: Simplified extension context manager
2010-07-22: ERF: port contrib and hinet to py.test
2010-07-22: ERF: Cache directory can be changed or picked at random (default)
2010-07-22: Merge branch 'sprint_info_refactoring'
2010-07-22: ERF: Renamed ‘Requirements’ → ‘MDPConfiguration’. Changed the API
            style a little. Needs more love with version checking.
2010-07-22: ERF: Caching extension moved to own file
2010-07-22: ERF: Tests for cache extension
2010-07-22: DOC: add note about where the links must be changed in sphinx rst
2010-07-22: FIX: Exception missing mdp module.
2010-07-22: ERF: ClassifyCumulator also inherits from VariadicCumulator. A
            little bit useless atm, since many methods are overwritten.
2010-07-22: FIX: UTF-8 problem. I want to have Python 3 only…
2010-07-22: FIX: broken linear regression test Use non-random input value, so
            that it doesn't fail randomly.

2010-07-22: NEW: added hooks and a command-line option in py.test Use --seed
            to set the random seed.

            Added report of extended configuration infos before and after
            testing reports.  Added unit test for random seed [should only
            fail in case of a bug in py.test and/or numpy].

2010-07-22: FIX: make generated hinet tests pass
2010-07-22: ERF: Cache extension now based on joblib
2010-07-22: NEW: Added VariadicCumulator with mdp.Cumulator being a special
            case of it. VariadicCumulator adds as many automatic fields as are
            specified in the initialisation function.
2010-07-22: ERF: use py.test.raises for exception testing
2010-07-22: FIX: correct PCANode generation
2010-07-22: ERF: extract PCANode generation to a helper function
2010-07-22: ERF: migrate tests for hinet to py.test
2010-07-22: FIX: Switchboard.is_invertible() cannot be a staticmethod
2010-07-22: ERF: remove previously converted tests from test_nodes.py
2010-07-22: ERF: migrate tests for CuBICA- and TDSEPNodes to py.test
2010-07-22: ERF: migrate tests for HistParade- and TimeFrameNodes to py.test
2010-07-22: ERF: migrate tests for EtaComputerNode to py.test
2010-07-22: ERF: migrate tests for GrowingNeuralGasNode to py.test
2010-07-22: ERF: migrate tests for NoiseNode to py.test
2010-07-22: ERF: migrate tests for FDANode to py.test
2010-07-22: ERF: migrate tests for GaussianClassifier to py.test
2010-07-22: ERF: migrate tests for FANode to py.test
2010-07-22: ERF: migrate tests for ISFANode to py.test
2010-07-22: ERF: migrate tests for RMB*Node to py.test
2010-07-22: ERF: move spinner to _tools
2010-07-22: ERF: migrate tests for LinearRegressionNode to py.test
2010-07-22: ERF: migrate tests for CutoffNode to py.test
2010-07-22: ERF: migrate tests for HistogramNode to py.test
2010-07-22: ERF: migrate tests for RBFExpansionNode to py.test
2010-07-22: ERF: migrate tests for AdaptiveCutoffNode to py.test
2010-07-22: ERF: migrate tests for SFA2Node to py.test
2010-07-22: ERF: migrate tests for SFANode to py.test
2010-07-22: ERF: migrate tests for WhiteningNode to py.test
2010-07-22: ERF: migrate tests for PCANode to py.test
2010-07-22: ERF: migrate tests for PolynomialExpansionNode to py.test
2010-07-22: ERF: migrate covariance Node tests to py.test
2010-07-22: ERF: add node copying, saving and training tests
2010-07-22: ERF: move BogusNode* to _tools
2010-07-22: FIX: fix python2.5 compatibility
2010-07-21: FIX: Don’t include utils until it is needed.
2010-07-21: ERF: Drop Python 2.4, use built-in all().
2010-07-21: ERF: Fix some of the issues with contrib.__all__ and dependencies.
2010-07-21: FIX: Fixing bugs with scheduling. Avoid printing while mdp is
            imported.

            Rename _info() to req.info() in MDPVersionCallable. req.info() is
            a different object but it’s exact layout is not important for
            scheduling.
2010-07-21: ERF: add tests for RBFExpansionNode
2010-07-21: FIX: don't use self in staticmethod
2010-07-21: ERF: add generated tests for FastICA
2010-07-21: ERF: generate tests for reversing
2010-07-21: ERF: use any and all to check conditions
2010-07-21: BRK: make is_trainable staticmethod where possible
2010-07-21: BRK: make is_invertible staticmethod where possible
2010-07-21: ERF: Everybody loves nicer output
2010-07-21: OTH: implemented obvious thing of decorating the execute method
            with joblib, it does not work; breaks the caching extension
2010-07-21: ERF: Remove all the cool logic and decorators because __dict__ is
            not ordered and all the methods are executed in arbitrary order.
2010-07-21: Merge commit '38664d80675ea7304ee28b460ba88c547b55629e'
2010-07-20: NEW: Added a new Requirements object which checks for available
            features. Current version needs some discussion/rework because
            class methods are not initialised in order...

2010-07-21: ERF: generate dimdtypeset consistency tests
2010-07-21: FIX: Fixed the remaining broken unittests.
2010-07-21: ERF: generate outputdim_consistency tests
2010-07-21: NEW: Adding the ‘official’ backport for OrderedDict to our
            routines.py.
2010-07-21: FIX: Updated the bimdp.hinet package to work with the new
            stop_training.
2010-07-21: ERF: world's first automatic test generation
2010-07-21: OTH: Merged cache branch with convolution branch
2010-07-21: FIX: Updated the BiFlowNode to work with new stop_training.
2010-07-21: DOC: Improved documentation for Convolution2DNode
2010-07-21: FIX: Fixed the failing BiFlow unittest.
2010-07-21: ERF: Convolution2DNode now supports FFT convolution, checks for
            the validity of all of its argments; the new tests are in a file
            outside the repository, waiting for the new test framework
2010-07-21: FIX: Fixed the inspection by removing the stop_message reference.
2010-07-21: BRK: Simplified the coroutine decorator according the stop_message
            removal.
2010-07-21: BRK: Updated and simplified BiFlow for the new stop_training
            specification. Not tested yet.
2010-07-21: ERF: Added output dimension check to IdentityNode.
2010-07-21: ERF: ported test_flows to py.test
2010-07-21: ERf: ported test_graph.py to py.test
2010-07-21: ERF: ported test_parallelflows to py.test
2010-07-21: ERF: ported test_parallelhinet.py to py.test
2010-07-21: ERF: ported test_parallelnodes.py to py.test
2010-07-21: ERF: ported test_process_schedule to py.test
2010-07-21: ERF: ported test_extension to py.test
2010-07-21: FIX: caching extension now works with non-contiguous arrays
2010-07-21: OTH: Updated bimdp todo list.
2010-07-21: BRK: Started with change of the stop_training signature in bimdp
            and removed stop_message. The binode file is basically done.
2010-07-21: NEW: New utility function to generate Gabor wavelets
2010-07-21: ERF: ported test_classifier to py.test
2010-07-21: ERF: added new testing tools file.
2010-07-21: ERF: ported test_schedule to py.test
2010-07-20: FIX: globally remove trailing whitespace Used
            http://svn.python.org/projects/python/trunk/Tools/scripts/reindent.py
            .

2010-07-20: FIX: broken import
2010-07-20: Merge branch 'py3k', remote branch 'origin/sprint_gradient' into
            master Conflicts:
            bimdp/inspection/trace_inspection.py

2010-07-20: FIX: Removed use of new.instancemethod from inspection.
2010-07-20: FIX: typo in Flow.__setitem__
2010-07-20: ERF: use context manager for file access
2010-07-20: FIX: don't create a list that is ignored RefactoringTool:
            Warnings/messages while refactoring: RefactoringTool: ### In file
            /home/zbyszek/mdp/mdp-toolkit/build/py3k/mdp/linear_flows.py ### 
            RefactoringTool: Line 481: You should use a for loop here

2010-07-20: FIX: Fixed the integer division in bimdp.
2010-07-20: FIX: remove bogus import in test/__init__.py
2010-07-20: FIX: get rid of the "callable" variable and fix the scheduler
            shutdown An explicit flush was needed.

2010-07-20: NEW convolution2d node
2010-07-20: ERF: esthetic change: activate heart beat spinner
2010-07-20: FIX: another integer division problem
2010-07-20: FIX: don't use None in comparisons
2010-07-20: FIX: integer division again
2010-07-20: FIX: fixed handling of binary mode for stdin and stdout for pickle
2010-07-20: FIX: remove unused import
2010-07-20: FIX: don't compare float with NoneType In Python2.6 None is
            smaller than any float, but in Python3 the comparison fails with
            TypeError.

2010-07-20: FIX: whitespace
2010-07-20: FIX: correct relative imports in process_schedule.py
2010-07-20: FIX: another integer division problem
2010-07-20: FIX: whitespace
2010-07-20: FIX: add x before range git grep -l 'for.*[^x]range'
            mdp/test/|xargs sed -i -r 's/for(.*[^x])in range/for\1in xrange/g'

2010-07-20: FIX: matlab→python and py3k cleanups a = a + 1 becomes a += 1
            / becomes // range() becomes xrange() useless cast removed 
            exception variable doesn't leak out after the catch block anymore

2010-07-19: FIX: whitespace
2010-07-20: FIX: zip returns a generator in py3k, we need a list
2010-07-19: FIX: fixed integer division
2010-07-19: FIX: fixed calling unbound class methods in extensions. unbound
            methods have been removed in python3.
2010-07-19: ERF: refactored py3tool
2010-07-19: FIX: use sets not lists in testing GraphNode
2010-07-19: FIX: open files in binary mode when loading a pickle
2010-07-19: MISC: gitignore build stuff
2010-07-19: ERF: use 'open' function instead of the deprecated 'file' in
            mdp/demo
2010-07-19: FIX: missing import in setup.py [2]
2010-07-19: FIX: missing import in setup.py
2010-07-19: NEW: python3 setup logic (from numpy)
2010-07-19: ERF: use 'open' function instead of the deprecated 'file'.
2010-07-20: ERF: Restricted the gradient default implementation to the
            IdentityNode, now raise an exception as the default.
2010-07-20: ERF: Removed the explicitly defined IdentityBiNode, use the
            autogenerated one instead.
2010-07-20: NEW context manager for extensions
2010-07-20: NEW basic implementation of the cache execute extension
2010-07-19: ERF: Added a gradient unittest with a small network.
2010-07-19: ERF: Improved one  layer gradient unittest into a functional test.
            Insignificant cleanup in gradient module.
2010-07-19: FIX: Fixed the switchboard gradient and added unittest.
2010-07-19: NEW: Added the switchboard gradient implementation with a test
            (more unittests are needed).
2010-07-19: NEW: Added gradient implementation for layer with some unittests
            (more are needed). Added check in gradient base node that node has
            finished training.
2010-07-19: DOC: Added the new project guidelines.
2010-07-19: ERF: use integer division
2010-07-19: NEW: Added gradient extension with some implementations for simple
            nodes (no hinet yet).
2010-07-02: Added kwargs to SenderBiNode init to enable multiple Inheritance.
2010-07-02: Fixed bug in inspection: If nodes were added in later training
            phases the clickability broke for all nodes. Again this affected
            XSFA. Changed text in inspection from layer to node.
2010-07-02: Updated the inspection example (more training phases for better
            illustration). Tiny doc update in SenderBiNode.
2010-07-02: Fixed bug for normal node in BiFlowNode (this broke the XSFA
            inspection example).
2010-07-01: Simplified the inspection msg printing.
2010-07-01: Improved the inspection message printing (alphabetic sorting and
            highlighted keywords).
2010-06-29: Improved the key order in the inspection msg HTML view.
2010-06-29: Improved the array HTML display in the inspection.
2010-06-29: Fixed one corner case bug in coroutine decorator and added more
            unittests. Updated bimdp todo list. Small docstring update in
            switchboard.
2010-06-16: Merged the coroutine mixin class into the BiNode base class. Added
            _bi_reset hook method that should be overwritten instead of
            bi_reset. This is more consistent with the standard MDP design.
            The bi_reset template method now clears the coroutine table.
            Dervied BiNode classes should rename their bi_reset to _bi_reset,
            but unless they use the coroutine decorator there is currently no
            negative effect for not doing so. Updated the BiMDP todo list.
2010-06-15: Fixed duplicate classifier nodes in autogenereated code.
2010-06-14: Added check and unittest for corner case of a directly terminating
            coroutine.
2010-06-13: Reverted my misguided fixes to the metaclass wrapping helpers.
2010-06-11: Small comments update.
2010-06-11: Updated the codecorator to work with the updated NodeMetaclass
            wrapping helper functions. Add new feature to specify argument
            default values. Changed the _coroutine_instances to be initially
            None for better efficiency.
2010-06-11: Rewrote the NodeMetaclass wrapping helper functions. The old
            versions contained a bug (default values would prevent user
            defined values from being passed to the function). The new version
            is also arguably more elegant and flexible. A unittest was added
            for parts of the new functionality.
2010-06-11: Fixed the n argument in PCANode inverse.
2010-06-09: Added new coroutine decorator and mixin for BiMDP, allowing easy
            continuations (without boilerplate code or explicit state
            machines).
2010-06-09: Fixed bug in SenderBiNode.
2010-06-09: Fixed typo.
2010-06-09: Fixed broken SFA execute range argument and renamed it to n. Added
            unittests for PCA and SFA n arguments. Added some missing SFANode
            attributes to init.
2010-06-09: Fixed bug in BiFlowNode.
2010-05-31: Added loop check for previous button in slideshow.
2010-05-27: Numpy still uses the deprecated string exceptions, which were
            naturally not caught during inspection. I now changed inspection
            to catch everything.
2010-05-19: Added check for loop setting in slideshow next().
2010-05-17: Very small cosmetic updates.
2010-05-17: fixed other two python2.4 incompatibilities in demos.
2010-05-15: fixed bug with ProcessScheduler when mdp installed by debian
            package. Now it works correctly even when multiple versions of mdp
            are installed, for example a system version via debian and a local
            git version. A unit test has been added to make sure parent and
            child processes are running the very same mdp. Thanks to Yaroslav
            Halchenko for pointing out the problem!

-------------------------------------------------------------------------------
MDP-2.6:

2010-05-14: fix spurious shogun warning.
2010-05-14: applied patch from Rike to re-enable some of the working Shogun
            tests.
2010-05-14: fixed bug when using most recent numpy (1.4.1). utils.get_dtype
            was failing when called with 'All' argument. most of MDP unittests
            were failing!
2010-05-14: added stylesheet files to setup script. only *.py files are
            installed by default.
2010-05-14: modified mechanism to get git revision in order to properly handle
            the case when git fails. added stylesheets to MANIFEST template
2010-05-14: several additions to distribution files
2010-05-14: removed NaiveBayesClassifer from automatically generated nodes in
            bimdp. regenerated node wrappers
2010-05-14: fixed bug in GaussianClassifierNode and FDANode when training with
            a list of labels. Removed obsolete 'uniq' function in utils. we
            can use builtin set instead.
2010-05-14: disabled Shogun tests. they often fail withtou apparent reasons.
            try for example: python2.5 -c 'import mdp;
            mdp.test(seed=257416710)'
2010-05-14: Added a maximum iteration constraint to the k-means classifier.
2010-05-14: Moved the NaiveBayesClassifier to the demo.
2010-05-14: Fixed a bug where the Classifier rank() method returned items in
            the reverse order.
2010-05-13: LLENode was not fixed ;-) disabled 2D test and added reminder to
            TODO
2010-05-13: fixed ever failing LLENode test.
2010-05-13: added info about LibSVM and Shogun in mdp.info()
2010-05-13: first take at disabling SVM tests when libraries are not available
2010-05-12: Updated the todo list to reflect the latest developments.
2010-05-12: Adjusted the BiClassifier node according to the renamings.
2010-05-12: Renamings in the classifier nodes (classify->label, cl->labels).
2010-05-11: removed code duplication from test/__init__.py
2010-05-11: added info function to display infos about MDP and dependencies
2010-04-29: Added ability to exit BiFlow with -1 target value, making it
            easier to use inverse execution.
2010-04-22: Inserted the new sys.path behavior also in the main clause.
2010-04-22: Changed the sys.path behavior in subprocesses to fix problems with
            multiple MDP versions on a system.
2010-04-14: Fall back on default if specified browser is not available.
2010-04-14: Added tracebacks to exception handling during debug inspection.
2010-04-12: Added ability to specify a specific browser for slideshows, also
            changed the argument name.
2010-04-09: Rewrote K-Means training to be aligned with the Cumulator
            training.
2010-04-09: Adapted the SVM Classifiers to use the new ClassifierCumulator
            class.
2010-04-03: Made a Cumulator version for simple Classifiers.
2010-04-06: Made GaussianClassifierNode inherit from ClassifierNode.
2010-04-04: Simplified the inheritance names in classifier nodes’
            declarations.
2010-03-29: Patch from Benjamin Schrauwen to fix the method polution issue.
2010-03-29: Fixed the dysfunctional unittest, it now breaks, currently no
            solution.
2010-03-29: Added test for pp scheduler with real flow.
2010-03-28: Improved the extension verbose printing.
2010-03-28: Fixed one more issue (method polution) and added a test.
2010-03-28: Added new failing test, caused by polution.
2010-03-28: Added unittest for the special behavior when multiple extensions
            extend the same method.
2010-03-28: Patch from Benjamin Schrauwen for extension mechanism.
2010-03-27: Slightly changed the behavior of targeted message keys: They are
            now removed even if they are not args of the method. Updated the
            unittests accordingly.
2010-03-27: Fixed bug for layer containing a single node.
2010-03-26: Added BiClassifier and automatic creation of BiMDP versions for
            MDP classifiers (currently except the SVN based ones).
2010-03-25: Applied patch from Benjamin Schrauwen, the BiMDP tests now all
            pass.
2010-03-25: Changed the BiMDP msg key seperator from "=>" to "->" to allow for
            more consistent convention in the future, when more options might
            be added. Updated the todos accordingly.
2010-03-25: Undid the changes to the extension mechanism, they are now
            available in a seperate branch.
2010-03-25: Enable inheritance in extensions. Patch thanks to Benjamin
            Schrauwen! (cherry picking from commit
            aacbc906be0f79e66124085e1c51c35a0aee731d) Enable inheritance in
            extensions. Test thanks to Benjamin Schrauwen! (cherry picking
            from commit 89b7facb223aff09d4581ce5aa68d07a8ef47b1b)
2010-03-25: Enable inheritance in extensions. Test thanks to Benjamin
            Schrauwen!
2010-03-25: Enable inheritance in extensions. Patch thanks to Benjamin
            Schrauwen!
2010-03-24: Python fixes for compatibility with 2.4.
2010-03-24: Reverted some of the Python 2.6 (and Numpy 1.4) only changes.
2010-03-24: Added verbose argument to mdp.activate_extension.
2010-03-23: Added a section about dealing with testing branches.
2010-03-22: Added unittest for bimdp parallel stuff and updated another.
            Update the todos.
2010-03-22: Improved the CloneBiLayer message data splitting and added
            corresponding unittest.
2010-03-22: Slightly changed the message handing in BiSwitchboard and added
            corresponding unittests. Small rename in BiNode. Small todo
            update.
2010-03-16: Added a simple k-means clustering classifier.
2010-03-14: Added node_id support to BiFlowNode.
2010-03-13: Added utility function izip_stretched.
2010-03-12: Added test for adding node to flow. Moved one BiNode test to
            correct class.
2010-03-11: Fixed bug in flow in-place adding method.
2010-03-11: Added a refcast to classify and prob methods.
2010-03-10: Fixed the remaining failing tests from Tiziano. It was caused by
            an ambiguity of the BiFlow.train docstring, so this is now
            explained in more detail. An additional check was added to BiFlow
            to detect this kind of error.
2010-03-10: Refactored the additional argument check into seperate method, so
            that it can be reused by derived flow classes (especially BiFlow).
2010-03-10: Fixed the test for FDA in a biflow.
2010-03-10: Added other failing tests for BiFlow.
2010-03-10: Added failing tests for BiFlows.
2010-03-10: Added special __add__ method to BiNode, creating a BiFlow. Also
            added corresponding unittest.
2010-03-09: Fixed an assertion bug in Shogun test.
2010-03-09: Added unittests for recent stop_message magic. Also made some
            small improvements and added for documentation for this. Made
            small updates to the general bimdp docstring.
2010-03-09: Added a section on using git with Windows or Eclipse. Added a
            section on following PEP 8.
2010-03-09: Added checks for input_dim.
2010-03-09: We need to have shogun 0.9 for our SVM Classifier.
2010-03-08: Updated NEW_DEVELOPER_INFO to ‘The git situation’.
2010-03-08: Fixed Py2.6 DeprecationWarning in RBMLearning test.
2010-03-08: Fixed a new bug in BiNode. Moved the SVN nodes to the classifier
            part in the autogen module.
2010-03-08: Made a larger set of additions to the SVM tests.
2010-03-08: Updated the docstrings for the SVM classifiers.
2010-03-06: Fix: Forgot to set the classifier_type in libsvm.
2010-03-06: Added simple support for probability estimations in LibSVM through
            our _prob() method.
2010-03-04: Renamed SVM_Node -> SVM_Classifier.
2010-03-02: Supplying arguments to the shogun classifier works now. Improved
            the test suite.
2010-03-01: Lots of updates and refinements to shogun integration.
2010-02-28: Added some recognition for KernelMachines in shogun.
2010-02-27: Applied some fixes and optimisations to the SVM code.
2010-02-26: Added class _LabelNormalizer to ease the handling of label
            mapping.
2010-02-26: ClassifierNode-Migration: Now use ClassifierNode._classify in
            SVMNodes.
2010-02-26: Last commit before migration of SVM nodes to ClassifierNode.
2009-09-16: Made some improvements in SVM testing and overall structure.
2010-03-06: Improved the algorithm for _randomly_filled_hyperball(). Scaling
            is much better now.
2010-03-06: Fixed a bug in ClassifierNode.rank(). It now expects a list of
            feature vectors to function.
2010-03-06: Fixed one potential stop_message issue.
2010-03-06: Added magic in BiNode to call execute or inverse from
            stop_message.
2010-02-27: Made the product helper method take advantage of Python 2.6.
2010-03-04: Moved release files in root of master branch.
2010-03-03: Added automatic detection of number of CPU cores. This is used in
            the ProcessScheduler and the ThreadScheduler as the default value.
2010-03-02: Fixed bug left over from inspection cleanup.
2010-02-27: get_svn_revision --> get_git_revision
2010-02-25: Made a couple of smaller improvements in the inspections stuff.
            Added a nice demo for customized inspections.
2010-02-22: Introducing a node for a simple discrete Hopfield model.
2010-02-22: Stupid bug in bool_to_sign fixed.
2010-02-23: Simplified the improved import precautions.
2010-02-23: Enabled calling bimdp.test(). Removed redundant code from autogen.
2010-02-23: Made the import process in the worker processes more robust, to
            fix the problem with calling bimdp.test() from the command line.
2010-02-23: Small updated in the autogen code.
2010-02-23: Changed the automatic creation of BiNode versions for MDP nodes.
            Now a module file is used that is created by a special script.
            While less elegant than the original dynamic solution this is now
            compatible with code checkers and is more transparent for users.
2010-02-23: Added general purpose routines bool_to_sign and sign_to_bool.
2010-02-22: Fixed mdp import bug in process scheduler (caused by the occurance
            of mdp in the repo name).
2010-02-19: Delete mdp_dist. All future updates should be made in
            release-manager branch.
2010-02-19: Removed remaining binet references. Renamed some inspection
            classes to get the MDP out of the name. Updated the todo list.
2010-02-19: Need to check against numpy.all when comparing array elements.
2010-02-18: Corrected the common assert-statement-with-parentheses mistake.
2010-02-18: Restructured bimdp to follow the mdp structure.
2010-02-17: Renamed binet to bimdp.
2009-08-01: Typo fix in progressbar script and clarification for OS X (the
            automatic size works there as well).
2010-02-17: Added .gitignore file for .pyc files and some generic patterns.
2010-02-14: Added option to automatically handle the source_paths in the
            worker processes.
2010-02-13: Added more unittests for BiFlow. Fixed one bug in inspection.
            Moved the JumpBiNode to the tests.
2010-02-11: Updated the parallel demo.
2010-02-11: Added a new thread based scheduler. Some very tiny updates to
            ProcessScheduler.
2010-02-09: Added more BiNode unittests. Updated BiNode documentation. Updated
            BiFlow unittests (not yet complete).
2010-01-30: Some small fixes in the inspection. Tried to use cgitd to show
            nice HTML tracebacks, but so far this failed (FlowExceptionCR only
            preserves a traceback string).
2010-01-29: Removed the updown module (this should be no longer needed).
2010-01-26: Added check in get_quadratic_form to make it more flexible (e.g.
            when a derived class wants to use it in _stop_training). Also made
            some small PEP8 updates.
2010-01-26: Updated the imports for the parallel package. Fixed some other
            small issues.
2010-01-22: Fixed one issue in rectangular switchboards (the data in each
            patch was transposed). Added corresponding unittests.
2010-01-11: Seriously beefed up the automatic BiNode creation to preserve the
            init signature. This makes it compatible with the introspection in
            the parallel default fork implementation. Also added a special
            ParallelBiNode and made a tiny style improvement in BiNode.
2010-01-11: Added a default implementation for forking nodes.
2010-01-06: Updated the todos. Also one small improvement to the metaclass
            modification.
2010-01-05: Some small fixes and cosmetic correction.
2010-01-05: Fixed one bug from hell in FlowNode (copy was broken for nested
            FlowNodes when the copy happened after training).
2010-01-05: Fixed a bug in BiFlowNode.
2010-01-04: Modified the automatic node creation, now is compatible with
            pickle and should be 100% transparent. Also fixed the switchboard
            factory extension support.
2010-01-04: Put the automatic node creation into a function to avoid namespace
            polution. Added automatic node creation for switchboards. There is
            one remaining issue with pickling.
2010-01-04: Fixed bugs from refactoring.
2010-01-04: Small refactoring in switchboard factory extension (to allow
            easier modification by derived classes).
2010-01-04: Added automatic creation of BiNode versions of all nodes in
            mdp.nodes.
2010-01-04: Removed leftover code.
2010-01-04: Updated todos and docstring in init. Small cosmetic updates
            elsewhere.
2010-01-03: Fixed bug of the new inspection training node highlighting
            feature.
2010-01-03: Fixed one issue with stop messages in ParallelBiFlow, added a
            related convenience check to CloneBiLayer.
2010-01-03: Small improvements and bugfixes with respect to stop_message.
2010-01-03: Added highlighting of the currently training node in the
            inspection.
2010-01-02: Fixed a couple of bugs. The DBN example is now working again.
2010-01-02: Inspection was simplified, parallel did not need any changes. The
            binet simplification should now be complete (but I have not run
            real-world tests yet).
2010-01-02: Updated bilayer and biswitchboard (with some huge simplifications
            in biswitchboard). Now parallel and inspection remain to be
            updated.
2010-01-02: Added a new switchboard.
2010-01-01: Fixed some issues in BiFlow after simplification. Updated
            BiFlowNode, this is hopefully done.
2009-12-30: Finished simplification of BiFlow. bihinet still needs to be
            updated as well.
2009-12-25: Added /usr/share/dict/words to the list of dictionaries.
2009-12-23: Started with the binet simplification. BiNode should be more or
            less finished, most of the rest is not yet done. In principle
            everything should already work, there is just a large amount of
            dead code around.
2009-12-22: Fixed one bug in the trace inspection (added check for msg being
            None).
2009-12-22: Slightly modified the BiLayer data splitting behavior.
2009-12-22: Fixed bug in iterator / argument check for train: default argument
            values were not considered.
2009-12-16: Renamed the 'html_representation' extension to 'html'.
2009-12-15: Added a copy method to FlowNode to enable delegation to internal
            nodes. Added corresponding tests.
2009-12-13: Prettified the argument representations in the slides.
2009-12-12: Small update to SenderBiNode.
2009-12-12: Improved the exception display in the inspection slideshows. Fixed
            missing reset in fascade.
2009-12-12: Fixed bug in BiFlow (same bug that was previously fixed in
            BiFlowNode, just forgot to commit this).
2009-12-12: Fixed bug in BiFlowNode (relative target index was not translated
            to absolute index during training).
2009-12-12: Increased the robustnes of the training inspection in debug mode
            (it can now deal with exceptions before the stop training hook is
            reached).
2009-12-11: clean up a couple of lines in RBM nodes
2009-12-09: Added a small parallelization demo to demonstrate and explore the
            speedup.
2009-12-05: Fixed outdated default value in slideshow (could cause JS error in
            special circumstances).
2009-12-04: added documentation about the convention for the train methods of
            multiple training phase nodes.
2009-12-04: added Node.has_multiple_training_phases method.
2009-12-03: Modified check for missing argument in node training to also check
            for too many arguments. Added a corresponding test.
2009-12-03: Added check for missing training arguments in Flow (which should
            be provided by the iterator). Also edited the corresponding
            unittest.
2009-12-03: Fixed small error in docstring for slideshow.
2009-12-02: well, NoiseNode *can* be pickled if you use pickle instead of
            cPickle. I hope this bug is fixed in python2.6 or python3 ;-)
2009-12-02: raise error if trying to copying or saving the NoiseNode error
            (bug in cPickle)
2009-12-02: added failing test for iterables mess in flow.
2009-12-01: Added missing super call.
2009-12-01: Fixed one evil bug: When the last training phase of a node was not
            parallelizable in a ParallelCheckpointFlow then the checkpoint
            function was not called. The fix required the addition of another
            hook method in ParallelFlow, but is overall much cleaner than the
            previous solution. Also improved the status messages for local
            training phases.
2009-12-01: gaussian classifier still had overwritten train just to offer a
            doc-string. putting the doc-string in _train is sufficient.
2009-11-29: Added new version of SenderBiNode (doesn't use branching).
2009-11-26: Fixed one biflow issue when in inverse mode (especially inside a
            BiFlowNode).
2009-11-26: Updated some docstrings for the extension mechanism (they were
            only refering to methods and not attributes).
2009-11-26: Fixed a bug in the inspection facade.
2009-11-22: Improved the extension unittests (now testing class attributes as
            well).
2009-11-21: Improved the slideshow button text hints (they now also contain
            the keyboard shortcuts).
2009-11-21: Fixed one embarrassing mistake in the node metaclasses.
2009-11-21: Added support for kwargs in training and execution inspection.
2009-11-16: Added a SimpleMarkovClassifier node. There is duplicated
            functionality compared to the NaiveBayesClassifier, so the
            NaiveBayesClassifier could be refactored to be based on the
            SimpleMarkovClassifier.
2009-11-15: Fixed the signature overwriting in NodeMetaclass. Also renamed
            some occurances of "kargs" to "kwargs" in the Node class
            (previously both names were used in different methods).
2009-11-15: Fixed a bug in rank().
2009-11-14: Moved ClassifierNode up one directory.
2009-11-14: added file with info for new developers
2009-11-13: Added a ClassifierNode with basic methods classify, rank and prob.
2009-11-13: Fixed one bug in the message container, thanks to Sven Dähne.
2009-11-09: Fixed one small bug in switchboard factory. Added switchboard
            factory extension in binet. Updated todos.
2009-11-07: Added new switchboard factory node extension. This has been
            factored out of the hinet planer and I will now use it in my
            simulation software as well (therefore I wanted to integrate it
            into MDP). Unittests and documentation are currently missing
            (unittests will be somewhat tricky, not sure how deeply this
            should be covered in the tutorial anyway).
2009-11-06: Rewrote some parts of the extension mechanism. It now works for
            arbitrary attributes. One nice things is that this actually
            reduced the number of lines of code. The tutorial has not yet been
            updated. Attribute specific unittests are missing as well.
2009-11-06: Updated the todo list.
2009-11-05: Slightly improved the API for activating multiple extensions.
            Discovered that the extension mechanism does not work for
            classmethods/staticmethods, since they appear as non-callable
            descriptors. I will change the extension mechanism to work for
            arbitrary attributes ASAP.
2009-11-04: Small improvements in extension mechanism, added more comments.
            Added missing Exception import in hinet init.
2009-11-04: Fixed a small slideshow issue.
2009-11-03: Completed the clickable inspection nodes. One can now click on a
            node to jump to the next slide where it is reached. This does not
            work in IE yet (the workaround would be simple, but don't want to
            clutter the code with IE specific garbage). Also removed the AJAX
            storage div (caused trouble due to duplicate ids and is not needed
            anyway).
2009-11-03: Added support for active node ids in binet inspection. This will
            make it possible to click on a node and directly jump to the next
            time it is reached. The JS part of this is not yet implemented.
2009-11-03: Fixed the slideshow image CSS and added IE support.
2009-10-30: Cleaned up the JavaScript code in the binet inspection.
2009-10-27: Added checks in channel switchboard.
2009-10-21: Sorry, forgot to fix the webbrowser.open issue in binet.
2009-10-21: Fixed the webbrowser.open issue on MacOS as suggested by Rike.
2009-10-20: Tweaked hinet css. Extracted slideshow css into speparate file.
2009-10-20: Extracted CSS code into separate file.
2009-10-18: Fixed error in rhombic switchboard, added corresponding unittest.
2009-10-17: Added new features to the ChannelSwitchboard base class to get the
            effective receptive fields in hierarchical networks. Also added
            corresponding tests. Minor cosmetic updates in hinet translator.
2009-10-16: Added hinet translatation adapter for valid XHTML (instead of
            HTML). Also added a corresponding unittest, but this does not test
            the validity of the XHTML.
2009-10-16: Fixed two small issues in the hinet HTML representation.
2009-10-14: fixed bug in TimeFramesNode when input_dim was set explicitly.
            thanks to anonymous sourceforge user [Bug ID: 2865106]
2009-10-14: Some CSS fixes and a fix in the demo.
2009-10-14: Added slideshow CSS for crisp rescaling, in anticipation of the
            Firefox 3.6 beta release.
2009-10-12: Added feature that nicely line wraps the section ids in a
            slideshow.
2009-10-07: Added more checks to DoubleRect2dSwitchboard. Some small
            improvements. Updated the package init file.
2009-10-07: Reverted output_channels renaming in switchboard, to not create
            compatibility issues.
2009-10-07: Many switchboard updates. A new ChannelSwitchbard base class was
            introduced, many code improvements, HTML representations were
            added for the new switchboard types.
2009-10-06: removed spurious print statement in QuadraticForm tests.
2009-10-04: Added a section on the extension mechanism in the tutorial (note
            that this is a first draft). Also added a description of the
            slideshow stuff (plus a minor update in the slideshow code).
2009-10-04: Migrated extension stuff to separate module.
2009-10-01: Fixed some issues in the new DoubleRhomb2dSwitchboard, added more
            tests.
2009-09-29: Added a new switchboard class, DoubleRhomb2dSwitchboard. The tests
            are currently incomplete and there are probably bugs in there.
2009-09-29: Some simplifications in the switchboard classes.
2009-09-29: Added a new switchboard class, DoubleRect2dSwitchboard. This will
            probably be complemented in the future by a Rhomb2d switchboard
            for multilayer networks.
2009-09-24: Fixed support for multiple slideshows in one file. Added multiple
            slideshow demo. Allowed keyboard shortcuts for slideshows to be
            turned off.
2009-09-23: Updated todos.
2009-09-23: Fixed the template indentation handling. Updated the binet
            inspection to work with the new slideshow. Moved the manual tests
            for slideshow and hinet to the demos folder.
2009-09-23: Some more cleanup for the slideshow stuff.
2009-09-23: Small update in binet for moving the hinet basic CSS to utils.
2009-09-23: Cleaned up the slideshow JavaScript code. Most importantly the use
            of global variables is now minimized by using an object oriented
            design with a closure. Some additional cleanup in the slideshow
            classes was done as well. Added one helper function to directly
            create an HTML slideshow. Moved the default CSS from hinet to
            utils, so it can be used by both slideshow and hinet. Moved the
            hinet HTML test/demo to the test folder and added a similar demo
            for slideshow (using the MDP logo animation).
2009-09-19: added script to analyze code coverage during tests and output html
            report; needs figleaf,
            http://darcs.idyll.org/~t/projects/figleaf/doc/; mostly, we don't
            test exception, but there are some more worrying parts, like we
            don't test for for flow inversion...
2009-09-17: Added new utility function orthogonal_permutations. The function
            helps avoiding deeply nested statements when several of several
            arguments need to be tested against each other.
2009-09-14: Many thanks to Christian Hinze for pointing out a bug in
            QuadraticForm.get_invariances. Removed warning about bug in
            linalg.qr in numpy 1.0.1.
2009-09-14: Mainly added basic svm tests and did some cleanup and bug fixes.
            Also, the requested comments have been investigated.
2009-09-10: fixed bug in QuadraticForm.get_invariances: second derivative
            value was wrong when linear term significantly large; second
            derivative directions were ok
2009-08-30: small cleanups of svm_nodes and comments/requests for comments.
            rike?
2009-08-30: changed import order in nodes/__init__.py to clean up import in
            expansion_nodes.py for GrowingNeuralGasExpansionNode.
2009-08-23: Made extension method attributes public. Improved the extension
            unittests.
2009-08-22: Small code improvement in binet inspector. Updated todo for
            extensions.
2009-08-22: Modified the NodeMetaclass wrapping procedure to use super instead
            of direct method references. Hopefully this has no negative side
            effects. The advantage is that it is compatible with runtime
            monkey patching, so it enables more extension stuff.
2009-08-21: Extension decorator now preserves function docstring and
            signature.
2009-08-17: Fixed extension related bug in ParallelBiFlow. Improved the
            related unittests. Added some comments.
2009-08-16: Added little comment.
2009-08-16: Removed use of parallel FlowNodes in parallel flows. Small update
            to extensions.
2009-08-12: Added option to extension decorator to specify the method name.
            Added extension decorator unittest (now we have 400 unittests,
            wheee!).
2009-08-12: Fixed left-over bugs from yesterdays mess, fixed unittests.
2009-08-11: Added more unittests for the extension mechanism. Changes in the
            extension documentation and comments, and one small fix.
2009-08-11: Use set for list of active extensions.
2009-08-11: Added safety mechanisms to extensions, added one corresponding
            unittest.
2009-08-10: Re-enabled Shogun nodes.
2009-08-10: Added Henning Sprekeler to the list of developers and removed him
            from the list of contributors. Updated the various copyright
            statements all over the place, and the home page.
2009-08-10: Corrected the docstring of the GrowingNeuralGasExpansionNode to be
            more precise on the relation between max_nodes and the dimension
            of the expansion.
2009-08-10: added standard tests for GworingNeuralGasExpansionNode and cleaned
            up its setting of output_dim.
2009-08-07: Bug removed in GrowingNeuralGasExpansionNode: scipy -> numx
2009-08-07: missing file added; UpDownNode modified so it can pass down the
            results of computations at he top
2009-08-07: Added GrowingNeuralGasExpansionNode to expansion_nodes. Tests are
            still missing.
2009-08-07: ShogunSVMNode only gets imported when libraries are present.
            Stylistic changes (not all done yet). Some parameter issues and
            docstring clarified. Non-kernel classification.
            self._classification_type added. Parameter mapping for kernels
            introduced.
2009-08-06: remove import of svm_nodes in contrib. the automatic shogun import
            is not ready for prime-time.
2009-08-02: Initial SVM commit. Using only shogun for now. Still needs a lot
            of work and a better API. But it is already working somehow.
2009-08-02: uploaded UpDownBiNode, mother class for DBN, backpropagation;
            corrected small bug in binet; I've got loads of questions about
            binet
2009-07-31: GaussianClassifierNode has now explicit output_dim method (which
            fails).
2009-07-25: Added RBF node, utilities to replicate array on an additional
            dimension (rrep, lrep, irep) -> very useful
2009-07-19: Updated BiNet todo list.
2009-07-16: Fixed bug in rectangular switchboard that was introduced in the
            previous update.
2009-07-15: Added unused channel information to rectangular switchboard, this
            is also shown in the HTML representation. Added comments in
            slideshow.

-------------------------------------------------------------------------------
MDP-2.5:

2009-06-30: Added online detection of numerical backend, parallel
            python support, symeig backend and numerical backend to the output of
            unit tests. Should help in debugging.
2009-06-12: Integration of the cutoff and histogram nodes.
2009-06-12: Fixed bug in parallel flow (exception handling).
2009-06-09: Fixed bug in LLENode when output_dim is a float. Thanks to Konrad 
            Hinsen.
2009-06-05: Fixed bugs in parallel flow for multiple schedulers.
2009-06-05: Fixed a bug in layer inverse, thanks to Alberto Escalante.
2009-04-29: Added a LinearRegressionNode.
2009-03-31: PCANode does not complain anymore when covariance matrix has negative
            eigenvalues iff svd==True or reduce==True. If output_dim has been 
            specified has a desired variance, negative eigenvalues are ignored.
            Improved error message for SFANode in case of negative eigenvalues,
            we now suggest to prepend the node with a PCANode(svd=True) or 
            PCANode(reduce=True).
2009-03-26: Migrated from old thread package to the new threading one. 
            Added flag to disable caching in process scheduler. There are some
            breaking changes for custom schedulers (parallel flow training or 
            execution is not affected).
2009-03-25: Added svn revision tracking support.
2009-03-25: Removed the copy_callable flag for scheduler, this is now completely
            replaced by forking the TaskCallable. This has no effect for the 
            convenient ParallelFlow interface, but custom schedulers get broken.
2009-03-22: Implemented caching in the ProcessScheduler.
2009-02-22: make_parallel now works completely in-place to save memory.
2009-02-12: Added container methods to FlowNode.
2009-03-03: Added CrossCovarianceMatrix with tests.
2009-02-03: Added IdentityNode.
2009-01-30: Added a helper function in hinet to directly display a flow HTML 
            representation.
2009-01-22: Allow output_dim in Layer to be set lazily.
2008-12-23: Added total_variance to the nipals node.
2008-12-23: Always set explained_variance and total_variance after training in 
            PCANode. 
2008-12-12: Modified symrand to really return symmetric matrices (and not only
            positive definite). Adapted GaussianClassifierNode to account for
            that. Adapted symrand to return also complex hermitian matrices.
2008-12-11: Fixed one problem in PCANode (when output_dim was set to input_dim 
            the total variance was treated as unknown).
            Fixed var_part parameter in ParallelPCANode.
2008-12-11: Added var_part feature to PCANode (filter according to variance 
            relative to absoute variance).
2008-12-04: Fixed missing axis arg in amax call in tutorial. 
            Thanks to Samuel John!
2008-12-04: Fixed the empty data iterator handling in ParallelFlow.
            Also added empty iterator checks in the normal Flow (raise an 
            exception if the iterator is empty).
2008-11-19: Modified pca and sfa nodes to check for negative eigenvalues
            in the cov matrices
2008-11-19: symeig integrated in scipy, mdp can use it from there now.
2008-11-18: Added ParallelFDANode.
2008-11-18: Updated the train callable for ParallelFlow to support additional 
            arguments.
2008-11-05: Rewrite of the make parallel code, now supports hinet structures.
2008-11-03: Rewrite of the hinet HTML repesentation creator. Unfortunately this 
            also breaks the public interface, but the changes are pretty simple.
2008-10-29: Shut off warnings coming from remote processes in ProcessScheduler
2008-10-27: Fixed problem with overwriting kwargs in the init method 
            of ParallelFlow.
2008-10-24: Fixed pretrained nodes bug in hinet.FlowNode.
2008-10-20: Fixed critical import bug in parallel package
            when pp (parallel python library) is installed.

-------------------------------------------------------------------------------
MDP-2.4:

2008-10-16: added interface to BLAS's "gemm" matrix multiplication
            function.
2008-10-15: removed obsolete helper functions.
2008-10-15: added new feature. Now:
            output = XXXNode(output_dim=10)(x)
            trains and executes the node. This makes helper_functions obsolete!
            It even works for multiple training phases (only if the training 
            phase has not started yet).
2008-10-15: removed use of deprecated features with python2.6 -3.
2008-10-14: removed dangerous list default argument in rotate and permute 
            functions. A tuple is now used.
2008-10-13: PEP8 code restyling (pylint).
2008-10-07: Removed workarounds for pickle bug in numpy < 1.1.x (see 
            numpy ticket 551).
2008-09-24: Implemeted metaclass trick for automatic inheritance of 
            documentation for private methods. Node's subclass authors 
            can now directly document "_execute", and let users see those 
            docs as documenting "execute":
             
            class MyNode(Node):
                 def _execute(self):
                     """blah"""

            >>> print MyNode.execute.__doc__
            blah.
            
            Just defined set of methods allow overwriting of the docstring.
            the current list is:
            ['_train', '_stop_training', '_execute', '_inverse']
2008-09-22: Added new functionality to nodes and flows.
            Node1+Node2 now returns a flow and Flow1+Node1 appends 
            Node1 to Flow1.
2008-09-07: New node for Locally Linear Embedding
2008-08-28: The docstring of Flow.train now mentions that instead of x the 
            iterators can also return a tuple of x and additional args.
2008-08-28: Fixed bug in PCANode:
            when setting output_dim to a float number after instantiation 
            but before stop_training, i.e:
            pca = PCANode()
            pca.train(x)
            pca.output_dim = 0.9
            pca.stop_training()
            an exception was thrown: Output dim are set already (0) (1 given)
2008-08-28: Fixed bug in PCANode:
            when setting output_dim to float number, after stop_training
            pca.output_dim was a float number instead of integer.
2008-08-21: Added inverse for Switchboard, including unittests.
2008-08-19: Added parallel package.
2008-08-19: Added new NormalNoiseNode (with small unittest), 
            which can be safely pickled.
2008-08-07: fixed bug in rbm_nodes (TrainingFinishedException). 
            Thanks to Mathias Franzius!
2008-07-03: Node.__call__ method now takes *args and **kwargs to call
            the execute method. Thanks to Jake VanderPlas!
2008-06-30: Fix debian bug 487939:
            Modifed the fix for the debian bug so that white_parm defaults to 
            None instead of {}. With default {} a sublcass updating the 
            dictionary would have updated it for all instances... 
            http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487939
            Applied patch from Michael Hanke. Thank you!

-------------------------------------------------------------------------------
MDP-2.3:
2008-05-08: fixed bug in the raising of the switchboard exception.
2008-05-02: added exception for hinet.Rectangular2dSwitchboard 
            and corresponding unittest.
2008-04-25: added new TDSEPNode, updated ISFANode.
2008-04-16: added an HTML visualisation tool for hinet flows to the hinet
            package. Added a hinet section in the tutorial.
2008-03-22: released MDP 2.2, this release is intended for internal use only
2008-03-21: added hinet package
2008-03-19: added RBM nodes 
2008-03-18: fixed bug in PCANode when output_dim was specified as float.
2008-03-16: HitParadeNode now supports integer dtypes.
2008-03-13: created contrib subpackage and test_contrib test suites.
            JADENode moved to contrib. Tests are now sorted by test_suite.
	    Added the NIPALSNode for iterative PCA.
2008-03-11: added JADENode with tests
2008-03-10: added test for dimensions settings (nodes should have 
            output_dim and input_dim set after training)
2008-01-22: removed utils.comb scipy code and obsolete SciPy copyright
            notice from utils/routines.py
2008-01-03: fixed bug in SFA2Node when input_dim was set on instantiation,
	    fixed bug in SFA2Node._stop_training when output_dim was set and
            larger than input_dim,
            fixed bug in QuadraticForm when H was indefinite.
2007-09-14: FastICANode has been completely rewritten. It is now up-to-date
            with the original Matlab version (2.5) published on 19.10.2005.
	    Highlights: 
	    - fine tuning is implemented
	    - the stabilized version of the algorithm is implemented
	    - the new 'skew' non linearity for skewed input data is implemented
	    - bug fix in 'tanh' non linearity
	    - bug fix in 'gaus' non linearity in 'symm' approach
	    - all combinations of input parameters are being tested
2007-09-12: Added new funcionality for PCA and Whitening. The nodes can now
            be instantiated with svd=True, to use SVD instead of the standard
            eigenvalue problem solver. Setting reduce=True and var_abs and 
            var_rel it is possible to automatically discard irrelevant 
            principal components. See the nodes documentation for more info
2007-09-11: added check for positive eigenvalues in symeg and symeig_fake
2007-08-17: added pre_inversion_checks, inversion equivalent to 
            pre_execution_checks
2007-07-20: enable iteration on items and time completion estimation method in 
            progress_bar
2007-07-09: fixed bug in SFA2Node: when instantiated with 
            input_dim==output_dim, the range in symeig was not set and 
	    output_dim was wrong
2007-07-04: - fixed bug in mdp.utils.__init__.py about SymeigException not 
              caught
            - fixed bug in ISFANode when perturbing eps_contrast was not 
	      respected (it was perturing indefinitely)
	    - added a 'debug' kwarg to stop_training in PCANode, WhiteningNode,
              and SFANode. When stop_training fails because of singular 
	      matrices, the matrices itselves are not deleted (as before) but
	      kept in self.cov_mtx and self.dcov_mtx for later inspection
2007-07-03: fixed bug in ISFANode when lags was array.
2007-06-25: Added get_{proj,rec}matrix method to the ICANodes. 
            'get_recmatrix' returns an estimate of the mixing matrix.

-------------------------------------------------------------------------------
MDP-2.1:

2007-03-23: Updated tutorial and web site.
2007-03-23: Use get_limits.finfo to set precision limits
2007-03-23: Use symeig if found
2007-03-23: Use scipy instead of numpy when possible
2007-03-23: Numpy functions substituted with array method where possible
2007-03-22: Implemented invariances in Quadraticforms
2007-03-21: MDP now fully compatible with numpy 1.0
2007-03-15: Added ISFANode
2007-03-13: Added MultipleCovarianceMatrices utility class
2006-11-04: Added 'save' method to Node and Flow
2006-11-04: Node's train and stop_training methods now accept *args and **kwargs

-------------------------------------------------------------------------------
MDP-2.0RC:

29.06.2006: Updated tutorial and web site.
28.06.2006: New random_rot. Added SFA2Node, QuadraticForm, moved graph into the mdp tree.
27.06.2006: Converted typecode handling to numpy.dtype style; supported_typecodes
	    is now a property. Added bias in covariance.
26.06.2006: Converted to numpy. Scipy, Numeric, and numarray are not supported
	    anymore
06.12.2005: pca_nodes: added get_explained_variance public method.
02.12.2005: New introspection utils in mdp.utils.
01.11.2005: New nodes: FANode, FDANode, GaussianClassifierNode
31.10.2005: Non back-compatible changes. Node has got three new 'properties':
            output_dim, input_dim, typecode. They are accessible through their
	        getters (get_PROPERTY). They can be set using the default setters
	        (set_PROPERTY). Subclasses can customize the setters, overriding
	        the _set_PROEPRTY private methods. All nodes had to be changed to 
	        conform with the new structure. All tests pass.
26.10.2005: To force MDP to use a particular numerical extension, you
            can now set the enviroment variable MDPNUMX. Supported
            values are 'symeig', 'scipy', 'Numeric', 'numarray'.
            Mainly useful for testing purposes. 
06.10.2005: The SfaNode, CuBICA, and FastICA aliases have been deleted.
06.10.2005: Node supports multiple and even an infinite number of training
            phases. FiniteNode makes the implementation of a class with
            a finite number of phases easy and one with just one phase
            trivial.
06.10.2005: Flow supports the new nodes and even nodes requiring a
            supervision signal during training.
06.10.2005: SignalNode, SignalNodeException, and SimpleFlow are now
            deprecated aliases. Use Node, NodeException and Flow instead.
06.10.2005: some bug fixes.
05.10.2005: fixed failing 'import mdp' in test_symeig when mdp is not installed
12.07.2005: bug in utils.symrand (global name "mult" is not defined) 
06.07.2005: changed round off error checking in FastICANode (it was 1e-15 and
            it is now 1e-5). it failed on a MacOSX machine.
23.06.2005: _check_roundoff in lcov.py issues a MDPWarning using warnings.warn.
            it was using 'raise' before, and it was caught as a FlowException.
21.06.2005: node consistency is assured at flow instantiation.
-------------------------------------------------------------------------------
MDP-1.1.0:

13.06.2005: MDP 1.1.0 released.
01.06.2005: Crash_recovery is now off by default.
            To switch it on do: flow.set_crash_recovery(1)
30.05.2005: New NoiseNode.
30.05.2005: SimpleFlow and SignalNode now have a 'copy' method.
30.05.2005: SimpleFlow is now a mutable sequence type and implements
            many of the 'list' methods.
30.05.2005: removed scipy dependency. Now mdp runs with either Numeric, 
            numarray or scipy.
24.05.2005: symeig removed from mdp.
23.05.2005: all classes are now new-style.
-------------------------------------------------------------------------------
MDP-1.0.0:

15.11.2004: MDP 1.0.0 released
09.11.2004: Added crash recovery capabilities to SimpleFlow (on by default).
05.11.2004: New GrowingNeuralGasNode. New graph module.
04.11.2004: New IdentityNode subclass added. All analysis nodes are
            now subclasses of IdentityNode.
	    	Use of input_dim and output_dim in the nodes' constructor
	    	is now consistent.
02.11.2004: Now symeig works reliably also for complex matrices.
            symeig now can be distributed as an independent package
            It is still contained in mdp.utils for convenience.
	    	Default value for option overwrite changed from 1 to 0.
14.10.2004: With the release of Scypy 0.3.2, the installation of MDP got much
            simpler.
06.10.2004: Fixed a bug in symeig (when B=None and overwrite=0,
	    	symeig raised an exception)
04.09.2004: Fixed Windows-xspecific problems.
-------------------------------------------------------------------------------
MDP-0.9.0:

24.08.2004: MDP 0.9.0 released. First public release. 
16.08.2004: MDP project registered at SourceForge.
-------------------------------------------------------------------------------