Open yarikoptic opened 3 days ago
The spec for IZeroClampSeries
has three scalar datasets with a fixed value of 0.0. https://github.com/NeurodataWithoutBorders/nwb-schema/blob/dev/core/nwb.icephys.yaml#L77-L89
IZeroClampSeries
extends CurrentClampSeries
where these datasets are optional and can be set to any value.
The hdmf-schema-language version 2 (currently in use) says that "value" is an allowed property of a Dataset. However, HDMF has never supported this property. The spec was read and value: 0.0
was simply ignored. Instead, the PyNWB API set a fixed value of 0.0 for these datasets: https://github.com/NeurodataWithoutBorders/pynwb/blob/dev/src/pynwb/icephys.py#L211
In the latest hdmf-schema-language, beta version 3 (not yet adopted), we removed the "value" property of a Dataset because it was not being read by HDMF and there was no clear use case. These IZeroClampSeries
datasets demonstrate a valid use case (though, really, these should be attributes, but changing that would be a breaking change). So, I think we should re-allow the "value" property on Datasets and add proper support to HDMF.
We recently implemented a check in HDMF that warns when spec properties are provided that HDMF does not expect https://github.com/hdmf-dev/hdmf/pull/1134 . This check flagged the above three datasets.
Thanks for the bug report @yarikoptic !
our testing of dandi-cli against dev versions of hdmf and pynwb started to fail 2 days ago
https://github.com/dandi/dandi-cli/actions/runs/9772685521/job/26977490874