Releases: hdmf-dev/hdmf
Releases · hdmf-dev/hdmf
2.3.0
New features
- Add methods for automatic creation of
MultiContainerInterface
classes. @bendichter (#420, #425) - Add ability to specify a custom class for new columns to a
DynamicTable
that are notVectorData
,
DynamicTableRegion
, orVocabData
usingDynamicTable.__columns__
orDynamicTable.add_column(...)
. @rly (#436) - Add support for creating and specifying multi-index columns in a
DynamicTable
usingadd_column(...)
.
@bendichter, @rly (#430) - Add capability to add a row to a column after IO. @bendichter (#426)
- Add method
AbstractContainer.get_fields_conf
. @rly (#441) - Add functionality for storing external resource references. @ajtritt (#442)
- Add method
hdmf.utils.get_docval_macro
to get a tuple of the current values for a docval_macro, e.g., 'array_data'
and 'scalar_data'. @rly (#446) - Add
SimpleMultiContainer
, a data_type for storing aContainer
andData
objects together. @ajtritt (#449) - Support
pathlib.Path
paths inHDMFIO.__init__
,HDF5IO.__init__
, andHDF5IO.load_namespaces
. @dsleiter (#450) - Use hdmf-common-schema 1.2.1. See https://hdmf-common-schema.readthedocs.io/en/latest/format_release_notes.html for details.
- Block usage of h5py 3+. h5py>=2.9, <3 is supported. @rly (#461)
- Block usage of numpy>=1.19.4 due to a known issue with numpy on some Windows 10 systems. numpy>1.16, <1.19.4 is supported.
@rly (#461) - Add check for correct quantity during the build process in
ObjectMapper
. @rly (#463, #492) - Allow passing
GroupSpec
andDatasetSpec
objects for the 'target_type' argument ofLinkSpec.__init__(...)
.
@rly (#468) - Use hdmf-common-schema 1.3.0. @rly, @ajtritt (#486)
- Changes from hdmf-common-schema 1.2.0:
- Add data type ExternalResources for storing ontology information / external resource references. NOTE:
this data type is in beta testing and is subject to change in a later version. - Fix missing data_type_inc and use dtype uint for CSRMatrix. It now has data_type_inc: Container.
- Add hdmf-schema-language comment at the top of each yaml file.
- Add SimpleMultiContainer, a Container for storing other Container and Data objects together.
- Add data type ExternalResources for storing ontology information / external resource references. NOTE:
- Changes from hdmf-common-schema 1.2.0:
Internal improvements
- Drop support for Python 3.5. @ajtritt (#459)
- Improve warning about cached namespace when loading namespaces from file. @rly (#422)
- Refactor
HDF5IO.write_dataset
to be more readable. @rly (#428) - Fix bug in slicing tables with DynamicTableRegions. @ajtritt (#449)
- Add testing for Python 3.9 and using pre-release packages. @ajtritt, @rly (#459, #472)
- Improve contributing guide. @rly (#474)
- Update CI. @rly, @dsleiter (#481, #493, #497)
- Add citation information to documentation and support for duecredit tool. @rly (#477, #488)
- Add type checking and conversion in
CSRMatrix
. @rly (#485) - Clean up unreachable validator code. @rly (#483)
- Reformat imports. @bendichter (#469)
- Remove unused or refactored internal builder functions
GroupBuilder.add_group
,GroupBuilder.add_dataset
,
GroupBuilder.add_link
,GroupBuilder.set_builder
,BaseBuilder.deep_update
,GroupBuilder.deep_update
,
DatasetBuilder.deep_update
. MakeBaseBuilder
not instantiable and refactor builder code. @rly (#452)
Bug fixes
- Fix development package dependency issues. @rly (#431)
- Fix handling of empty lists against a spec with text/bytes dtype. @rly (#434)
- Fix handling of 1-element datasets with compound dtype against a scalar spec with text/bytes dtype. @rly (#438)
- Fix convert dtype when writing numpy array from
h5py.Dataset
. @rly (#427) - Fix inheritance when non-
AbstractContainer
is base class. @rly (#444) - Fix use of
hdmf.testing.assertContainerEqual(...)
forData
objects. @rly (#445) - Add missing support for data conversion against spec dtypes "bytes" and "short". @rly (#456)
- Clarify the validator error message when a named data type is missing. @dsleiter (#478)
- Update documentation on validation to indicate that the example command is not implemented @dsleiter (#482)
- Fix generated docval for classes with a LinkSpec. @rly (#487)
- Fix access of
DynamicTableRegion
of aDynamicTable
with column of references. @rly (#491) - Fix handling of
__fields__
forData
subclasses. @rly (#441) - Fix
DynamicTableRegion
having duplicate fields conf 'table'. @rly (#441) - Fix inefficient and sometimes inaccurate build process. @rly (#451)
- Fix garbage collection issue in Python 3.9. @rly (#496)
2.2.0
2.1.0
New features
- Users can now use the
MultiContainerInterface
class to generate custom API classes that contain collections of
containers of a specified type. @bendichter @rly (#399)- See the user guide
https://hdmf.readthedocs.io/en/stable/tutorials/multicontainerinterface.html for more information.
- See the user guide
Internal improvements
2.0.1
Internal improvements
- Add tests for writing table columns with DataIO data, e.g., chunked, compressed data. @rly (#402)
- Add CI to check for breakpoints and print statements. @rly (#403)
Bug fixes:
- Remove breakpoint. @rly (#403)
- Allow passing None for docval enum arguments with default value None. @rly (#409)
- If a file is written with an orphan container, e.g., a link to a container that is not written, then an
OrphanContainerBuildError
will be raised. This replaces theOrphanContainerWarning
that was previously raised.
@rly (#407)
2.0.0
New features
- Users can now call
HDF5IO.export
andHDF5IO.export_io
to write data that was read from one source to a new HDF5
file. Developers can implement theexport
method in classes that extendHDMFIO
to customize the export
functionality. See https://hdmf.readthedocs.io/en/latest/export.html for more details. @rly (#388) - Users can use the new export functionality to read data from one source, modify the data in-memory, and then write the
modified data to a new file. Modifications can include additions and removals. To facilitate removals,
AbstractContainer
contains a new_remove_child
method andBuildManager
contains a newpurge_outdated
method.
@rly (#388) - Users can now call
Container.generate_new_id
to generate new object IDs for the container and all of its children.
@rly (#401) - Use hdmf-common-schema 1.2.0. @ajtritt @rly (#397)
VectorIndex
now extendsVectorData
instead ofIndex
. This change allowsVectorIndex
to index otherVectorIndex
types.- The
Index
data type is now unused and has been removed. - Fix missing dtype for
VectorIndex
. - Add new
VocabData
data type.
Breaking changes
Builder
objects no longer have thewritten
field which was used byHDF5IO
to mark the object as written. This
is replaced byHDF5IO.get_written
. @rly (#381)HDMFIO.write
andHDMFIO.write_builder
no longer have the keyword argumentexhaust_dcis
. This remains present in
HDF5IO.write
andHDF5IO.write_builder
. @rly (#388)- The class method
HDF5IO.copy_file
is no longer supported and may be removed in a future version. Please use the
HDF5IO.export
method orh5py.File.copy
method instead. @rly (#388)
1.6.4
Internal improvements
Bug fixes:
- Fix validation of empty arrays and scalar attributes. @rly (#377)
- Fix issue with constructing
DynamicTable
with empty array colnames. @rly (#379) - Fix
TestCase.assertContainerEqual
passing wrong arguments. @rly (#385) - Fix 'link_data' argument not being used when writing non-root level datasets. @rly (#384)
- Fix handling of ASCII numpy array. @rly (#387)
- Fix error when optional attribute reference is missing. @rly (#392)
- Improve testing for
get_data_shape
and fix issue with sets. @rly (#394) - Fix inability to write references to HDF5 when the root builder is not named "root". @rly (#395)
1.6.3
1.6.2
Internal improvements:
- Update MacOS in CI. @rly (#310)
- Raise more informative error when adding column to
DynamicTable
w/ used name. @rly (#307) - Refactor
_init_class_columns
for use by DynamicTable subclasses. @rly (#323) - Add/fix docstrings for DynamicTable. @oruebel, @rly (#304, #353)
- Make docval-decorated functions more debuggable in pdb. @rly (#308)
- Change dtype conversion warning to include path to type. @rly (#311)
- Refactor
DynamicTable.add_column
to raise error when name is an optional column. @rly (#305) - Improve unsupported filter error message. @bendichter (#329)
- Add functionality to validate a yaml file against a json schema file. @bendichter (#332)
- Update requirements-min.txt for yaml validator. @bendichter (#333)
- Add allowed value / enum validation in docval. @rly (#335)
- Add logging of build and hdf5 write process. @rly (#336, #349)
- Allow loading namespaces from h5py.File object not backed by file. @rly (#348)
- Add CHANGELOG.md. @rly (#352)
- Fix codecov reports. @rly (#362)
- Make
getargs
raise an error if the argument name is not found. @rly (#365) - Improve
get_class
anddocval
support for uint. @rly (#361)
Bug fixes:
- Register new child types before new parent type for dynamic class generation. @rly (#322)
- Raise warning not error when adding column with existing attr name. @rly (#324)
- Add
__version__
. @rly (#345) - Only write a specific namespace version if it does not exist. @ajtritt (#346)
- Fix documentation formatting for DynamicTable. @rly (#353)
1.6.1
Minor enhancements:
- Allow docval to warn about use of positional arguments. @rly (#293)
- Improve efficiency of writing chunks with DataChunkIterator and HDF5. @d-sot, @oruebel (#295)
Bug fixes:
- Flake8 style fixes. @oruebel (#291)
- Handle missing namespace version. @rly (#292)
- Do not raise error when a numeric type with a higher precision is provided for a spec with a lower precision and different base type. Raise a warning when the base type of a given value is converted to the specified base type, regardless of precision level. Add missing support for boolean conversions. @rly (#298, #299)
- Add forgotten validation of links. @t-b, @ajtritt (#286)
- Improve msg for "can't change contianer_source" error. @rly (#302)
- Fix setup.py development status. @rly (#303)
- Refactor missing namespace version handling. @rly, @ajtritt (#297)
- Add print function for
DynamicTableRegion
. @oruebel, @rly (#290) - Fix writing of refined RefSpec attribute. @oruebel, @rly (#301)