[Feature]: Add Support for Categorical Columns in AlignedDynamicTable
What would you like to see added to MatNWB?
As per AlignedDynamicTable help text:
[AlignedDynamicTable is a]...DynamicTable container that supports storing a collection of sub-tables. Each sub-table is a DynamicTable itself that is aligned with the main table by row index. I.e., all DynamicTables stored in this group MUST have the same number of rows. This type effectively defines a 2-level table in which the main data is stored in the main table implemented by this type and additional columns of the table are grouped into categories, with each category being represented by a separate DynamicTable stored within the group.
AlignedDynamicTable should override the relevant DynamicTable interface functions to add the necessary awareness of these "category sub-tables".
Is your feature request related to a problem?
From the discussion here: https://github.com/NeurodataWithoutBorders/helpdesk/discussions/45
At its current state, the invalid presence of these functions will only cause errors to be thrown on use since the parent DynamicTable does not have this "category" concept at the moment.
What solution would you like?
Outside of implementing a similar inject for all AlignedDynamicTable instantiations (like how it is done for DynamicTable), it might be more robust for the interface functions themselves to distinguish the class of the DynamicTable. This doesn't seem kosher to me and would probably confuse API documentation.
Do you have any interest in helping implement the feature?
Yes.
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
- [X] Have you ensured this change was not already requested?
Implement addRow, addColumn getRow and toTable for the types.hdmf_common.AlignedDynamicTable class.
Currently one or more (?) of these functions will throw errors.
Todo:
- [ ] Update file.fillClass to fill in class methods when creating the
AlignedDynamicTableclassdef. - [ ] Implement functions for
addRow,addColumngetRowandtoTable