What’s new in PyTables 0.9.1

This release is mainly a maintenance version. In it, some bugs has been fixed and a few improvements has been made. One important thing is that chunk sizes in EArrays has been re-tuned to get much better performance. Besides, it has been tested against the latest Python 2.4 and all unit tests seems to pass fine.

More in detail:

Improvements:

  • The chunksize computation for EArrays has been re-tuned to allow the compression rations that were usual before 0.9 release.

  • New –unpackshort and –quantize flags has been added to nctoh5 script. –unpackshort unpack short integer variables to float variables using scale_factor and add_offset netCDF variable attributes. –quantize quantize data to improve compression using least_significant_digit netCDF variable attribute (not active by default). See https://www.ogc.org/standards/netcdf for further explanation of what this attribute means. Thanks to Jeff Whitaker for providing this.

  • Table.itersequence has received a new parameter called “sort”. This allows to disable the sorting of the sequence in case the user wants so.

Backward-incompatible changes:

  • Now, the AttributeSet class throw an AttributeError on __getattr__ for nonexistent attributes in it. Formerly, the routine returned None, which is pretty much against convention in Python and breaks the built-in hasattr() function. Thanks to Robert Nemec for noting this and offering a patch.

  • VLArray.read() has changed its behaviour. Now, it always returns a list, as stated in documentation, even when the number of elements to return is 0 or 1. This is much more consistent when representing the actual number of elements on a certain VLArray row.

API additions:

  • A Row.getTable() has been added. It is an accessor for the associated Table object.

  • A File.copyAttrs() has been added. It allows copying attributes from one leaf to other. Properly speaking, this was already there, but not documented :-/

Bug fixes:

  • Now, the copy of hierarchies works even when there are scalar Arrays (i.e. Arrays which shape is ()) on it. Thanks to Robert Nemec for providing a patch.

  • Solved a memory leak regarding the Filters instance associated with the File object, that was not released after closing the file. Now, there are no known leaks on PyTables itself.

  • Improved security of nodes name checking. Closes #1074335

Enjoy data!,

– Francesc Altet falted@pytables.org