Announcing PyTables 1.3
This is a new major release of PyTables. The most remarkable feature added in this version is a complete support (well, almost, because unicode arrays are not there yet) for NumPy objects. Improved support for native HDF5 is there as well. As an aside, I'm happy to inform you that the PyTables web site (http://www.pytables.org) has been converted into a wiki so that users can contribute to the project with recipes or any other document. Try it out!
Go to the (new) PyTables web site for downloading the beast: http://www.pytables.org/
or keep reading for more info about the new features and bugs fixed.
Changes more in depth
Improvements:
Support for NumPy objects in all the objects of PyTables, namely: Array, CArray, EArray, VLArray and Table. All the numerical and character (except unicode arrays) flavors are supported as well as plain and nested heterogeneous NumPy arrays. PyTables leverages the adoption of the array interface (http://numeric.scipy.org/array_interface.html) for a very efficient conversion between all the numarray (which continues to be the native flavor for PyTables) object to/from NumPy/Numeric.
The FLAVOR schema in PyTables has been refined and simplified. Now, the only 'flavors' allowed for data objects are: "numarray", "numpy", "numeric" and "python". The changes has been made so that they are fully backward compatible with existing PyTables files. However, when users would try to use old flavors (like "Numeric" or "Tuple") in existing code, a DeprecationWarning will be issued in order to encourage them to migrate to the new flavors as soon as possible.
Nested fields can be specified in the "field" parameter of Table.read by using a '/' as a separator between fields (e.g. 'Info/value').
The Table.Cols accessor has received a new __setitem__() method that allows doing things like:
table.cols[4] = record table.cols.x[4:1000:2] = array # homogeneous column table.cols.Info[4:1000:2] = recarray # nested column
A clean-up function (using atexit) has been registered so that remaining opened files are closed when a user hits a ^C, for example. That would help to avoid ending with corrupted files.
Native HDF5 compound datasets that are contiguous are supported now. Before, only chunked datasets were supported.
Updated (and much improved) sections about compression issues in the User's Guide. It includes new benchmarks made with PyTables 1.3 and a exhaustive comparison between Zlib, LZO and bzip2.
The HTML version of manual is made now from the docbook2html package for an improved look (IMO).
Bug fixes:
- Solved a problem when trying to save CharArrays with itemsize = 0 as attributes of nodes. Now, these objects are pickled in order to prevent HDF5 from crashing.
- Fixed some alignment issues with nested record arrays under certain architectures (e.g. PowerPC).
- Fixed automatic conversions when a VLArray is read in a platform with a byte ordering different from the file.
Deprecated features:
- Due to recurrent problems with the UCL compression library, it has been declared deprecated from this version on. You can still compile PyTables with UCL support (using the --force-ucl), but you are urged to not use it anymore and convert any existing datafiles with UCL to other supported library (zlib, lzo or bzip2) with the ptrepack utility.
Backward-incompatible changes:
- Please, see RELEASE-NOTES.txt file.
