You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a result, for both ElectricalSeries and SpikeEventSeries the attribute neurodata_type in the file is actually being set to TimeSeries . The same issue applies for the namespace attribute, but we just don't see it as wrong because all the types are in the same namespace right now.
#91 fixes this issue because it adds virtual getNamespace() and getTypename()`` functions that are being called to determine the type and because the functions are virtual they return the correct string even though the attribute in the file is still being created in TimeSeries.initialize` .
@stephprince it would be useful to discuss how we want to fix this on main. We could either: 1) try and push #91 and #85 over the finish line, or 2) try and implement and intermediate solution (ideally without creating a ton of conflicts with #91 and #85 )
The text was updated successfully, but these errors were encountered:
Also, Container currently does not call createCommonNWBAttributes so it is missing those attributes when used directly. DynamicTable.initialize on-the-other-hand calls the function. We should probably move the call to createCommonNWBAttributes to the Container.initialize method.
It looks like this issue is also potentially "hiding" some validation errors because the objects are being validated as TimeSeries instead of as an ElectricalSeries so that extra fields for ElectricalSeries may not be checked.
The
neurodata_type
andnamespace
attributes are being set inTimeSeries.initialize
aqnwb/src/nwb/base/TimeSeries.cpp
Lines 35 to 40 in 33e3481
Subclasses, then first call the initialize method of their respective parent, e.g.,:
aqnwb/src/nwb/ecephys/ElectricalSeries.cpp
Lines 40 to 42 in 33e3481
aqnwb/src/nwb/ecephys/SpikeEventSeries.cpp
Lines 34 to 36 in 33e3481
As a result, for both
ElectricalSeries
andSpikeEventSeries
the attributeneurodata_type
in the file is actually being set toTimeSeries
. The same issue applies for thenamespace
attribute, but we just don't see it as wrong because all the types are in the same namespace right now.#91 fixes this issue because it adds virtual
getNamespace()
andgetTypename()`` functions that are being called to determine the type and because the functions are virtual they return the correct string even though the attribute in the file is still being created in
TimeSeries.initialize` .@stephprince it would be useful to discuss how we want to fix this on main. We could either: 1) try and push #91 and #85 over the finish line, or 2) try and implement and intermediate solution (ideally without creating a ton of conflicts with #91 and #85 )
The text was updated successfully, but these errors were encountered: