Do not set data_type_inc=NWBContainer for NWBContainer #2135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
In NWB schema < 2.2.0, the neurodata type
NWBContainerhad noneurodata_type_inc. Starting in NWB schema 2.2.0,neurodata_type_incwas set toContainer(from hdmf-common).Currently, in
NWBGroupSpec, ifdata_type_incis not set, then it is set toNWBContainer. So when reading old files with cached NWB schema < 2.2.0,NWBContainerwhich doesn't havedata_type_incset will have it set toNWBContaienr. Thendata_type_def == data_type_incwhich should not be allowed and messes up inc spec resolution. After hdmf-dev/hdmf#1312 is merged, this situation will raise an error.This PR prevents setting
data_type_inc = "NWBContainer"whendata_type_def = "NWBContainer". Same forNWBData.How to test the behavior?
Checklist
ruff check . && codespellfrom the source directory.