Open lvsltz opened 4 years ago
This appears to a parsing issue, as a neurodata_type_def appears to hold precedent over other neurodata_type_inc definitions. I'm unfortunately strapped for time but I can at least investigate.
A workaround will require inheriting from ScratchData for every type for right now.
That said, the default spec appears to require inheriting from NWBContainer
, DynamicTable
, or ScratchData
so simply inheriting from NWBInterface
won't work either, even if the previous issue is resolved:
https://github.com/NeurodataWithoutBorders/matnwb/blob/dba6d09f3fd6f142884f0d76ce5b1cb273e822a1/nwb-schema/core/nwb.file.yaml#L83-L98
For a future note, this will require some work as the current generation method assumes a single hdf object type (i.e. Group, Link, Dataset) for each property. This is not necessarily true in evidence of scratch data.
For the backend, this will require some level of rewrite for how low-level schema analysis works.
I am using an extension to add groups of groups under
/scratch
to replicate the hierarchy of the icephys extension. The base container inherits fromNWBDataInterface
, yet MatNWB (but not pynwb) complains because the type is notScratchData
.Not sure if this is an issue on my side or a harsh constraint in matnwb.
Example file: test_icephys_file.h5.zip