* New `v_crun_` property simply returning ``'run_ALL'`` if ``v_crun`` is ``None``.
* BUG FIX: Removed recursive evaluation due to usage of `itertools.chain` during
recursive node traversal
* max_depth is now also supported by `f_store`, `f_store_child`, `f_load`, `f_load_child`
* Loading and Storing internally are no longer truly recursive but iteratively handled.
* New `v_auto_run_prepend` property of the trajectory to switch off auto run name prepending if
desired.
* The trajectory no longer relies on evil `eval` to construct a class. Instead
it relies on the global scope.
* Better counting of loading and storing nodes to display rate in nodes/s
* BUG FIX: Minor bug in the progressbar has been fixed to detect automatic resets.
* Now support for non-nested empty containers: Empty dictionary, empty list, empty tuple and
empty numpy array. All of them supported by the ArrayParameter and normal Results.
* Support for Sparse matrices containing *NO* data (i.e. only zeros).
* Performance optimization for storage and loading
* Improved test handling and parsing in `pypet.tests`
* Environment now supports `git_fail` option to fail if there are not committed changes
instead of triggering a new commit.
* Users can now define their own functions to produce run-names
* Likewise users can define their onw wildcards
* The lazy version of adding elements (`traj.par.x = 42, 'A comment') now needs to
be turned on by the user via (`traj.v_lazy_adding = True`) before it can be used.
* HDF5_STRCOL_MAX_ARRAY_LENGTH has been renamed to HDF5_STRCOL_MAX_RANGE_LENGTH
* The summary tables have been shortened. Now there's no distinction anymore between
the actual runs and everything else.
* Moreover, data added to summary tables is no longer deleted. There also exists a
maximum length for these tables (1000).
* The overview about the explored parameters in each run has been removed (due to size)
* Summary tables are now only based on the comments not the names!
* One can pass an estimate for memory that each run needs to better protect the memory
cap.
* All tree nodes except the trajectory now use __slots__ for faster and more compact
creation.
* You can now request to load a trajectory without `run_information` to save time for huge
trajectories
* Trajectories use ordered dictionaries to remember what was added during a single run.
Accordingly, now every data added during a single run regardless if they were added below
a group `run_XXXXXXXX` is stored.
* BUG FIX: The `'QUEUE'` wrapping no longer waits for chunks of data, but starts
storing immediately. Thus, if you have fast simulations, the storage service no longer
waits until the end of you simulation before it starts storing data.
In order to avoid overhead, the hdf5 is simply kept open until
the queue is closed.
* BUG FIX: If `log_stdout=True`, the original stream is restored instead of
`sys.__stdout__`. Thus, using another Python interpreter with a redirection of
`stdout` and calling `f_disable_logging` no longer disables `print` completely.
* Refactored 'QUEUE' wrapping. The user can now decide the maximum size of the Storage Queue.
* CAP values are now in `%`, so choose values between 0.0 and 100.0
* BUG FIX: Links removed during single runs are now no longer stored
* BUG FIX: `pypet.` is no longer prepended to unpickled logger names. Accordingly,
pypet logger names are now fully qualified names like `pypet.trajectory.Trajectory`.