You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
h5py 3 introduced [breaking changes regarding how strings are handled]
(https://docs.h5py.org/en/latest/whatsnew/3.0.html#breaking-changes-deprecations), specifically that
variable-length UTF-8 strings in datasets are now read as bytes objects instead of str by default.
To reduce the impact of this change on HDMF users, when HDMF reads a variable-length UTF-8 string
dataset, instead of returning an h5py.Dataset that is read as bytes objects, HDMF will return a hdmf.utils.StrDataset object that extends h5py.Dataset and is read as str objects, which preserves
previous behavior. For example, under HDMF 2.x, an HDF5 dataset d with data ['a', 'b'] is read as a h5py.Dataset object, and d[:] returns str objects. Under HDMF 3.x, the same dataset d is read
as a hdmf.utils.StrDataset object and d[:] still returns str objects.
Previously, when using DynamicTable.__getitem__ or DynamicTable.get to access a selection of a DynamicTable containing a DynamicTableRegion, new columns with mangled names for the table data referred to
by the DynamicTableRegion were added to the returned DataFrame. This did not work properly for ragged DynamicTableRegion, multiple levels of nesting, or multiple rows returned.
Now, these methods will by default return columns of indices of the DynamicTableRegion. If index=False is
passed to DynamicTable.get, then nested DataFrames will be returned, one DataFrame per row of the original
resulting DataFrame. @rly (#579)