def _read_recordingchannelgroup(self, node, parent): # todo: handle Units attributes = self._get_standard_attributes(node) channel_indexes = node["channel_indexes"].value channel_names = node["channel_names"].value if channel_indexes.size: if len(node['recordingchannels']): raise MergeError( "Cannot handle a RecordingChannelGroup which both has a " "'channel_indexes' attribute and contains " "RecordingChannel objects") raise NotImplementedError( "todo") # need to handle node['analogsignalarrays'] else: channels = [] for name, child_node in node['recordingchannels'].items(): if "RecordingChannel" in name: channels.append(self._read_recordingchannel(child_node)) channel_index = ChannelIndex(None, **attributes) channel_index._channels = channels # construction of the index is deferred until we have processed # all RecordingChannelGroup nodes units = [] for name, child_node in node['units'].items(): if "Unit" in name: units.append( self._read_unit(child_node, parent=channel_index)) channel_index.units = units channel_index.block = parent return channel_index
def _read_recordingchannelgroup(self, node, parent): # todo: handle Units attributes = self._get_standard_attributes(node) channel_indexes = node["channel_indexes"].value channel_names = node["channel_names"].value if channel_indexes.size: if len(node['recordingchannels']) : raise MergeError("Cannot handle a RecordingChannelGroup which both has a " "'channel_indexes' attribute and contains " "RecordingChannel objects") raise NotImplementedError("todo") # need to handle node['analogsignalarrays'] else: channels = [] for name, child_node in node['recordingchannels'].items(): if "RecordingChannel" in name: channels.append(self._read_recordingchannel(child_node)) channel_index = ChannelIndex(None, **attributes) channel_index._channels = channels # construction of the index is deferred until we have processed # all RecordingChannelGroup nodes units = [] for name, child_node in node['units'].items(): if "Unit" in name: units.append(self._read_unit(child_node, parent=channel_index)) channel_index.units = units channel_index.block = parent return channel_index
def test__children(self): chx = ChannelIndex(index=np.arange(self.nchildren), name='chx1') chx.units = [self.unit1] chx.create_many_to_one_relationship() assert_neo_object_is_compliant(self.unit1) assert_neo_object_is_compliant(chx) self.assertEqual(self.unit1._container_child_objects, ()) self.assertEqual(self.unit1._data_child_objects, ('SpikeTrain', )) self.assertEqual(self.unit1._single_parent_objects, ('ChannelIndex', )) self.assertEqual(self.unit1._multi_child_objects, ()) self.assertEqual(self.unit1._multi_parent_objects, ()) self.assertEqual(self.unit1._child_properties, ()) self.assertEqual(self.unit1._single_child_objects, ('SpikeTrain', )) self.assertEqual(self.unit1._container_child_containers, ()) self.assertEqual(self.unit1._data_child_containers, ('spiketrains', )) self.assertEqual(self.unit1._single_child_containers, ('spiketrains', )) self.assertEqual(self.unit1._single_parent_containers, ('channel_index', )) self.assertEqual(self.unit1._multi_child_containers, ()) self.assertEqual(self.unit1._multi_parent_containers, ()) self.assertEqual(self.unit1._child_objects, ('SpikeTrain', )) self.assertEqual(self.unit1._child_containers, ('spiketrains', )) self.assertEqual(self.unit1._parent_objects, ('ChannelIndex', )) self.assertEqual(self.unit1._parent_containers, ('channel_index', )) self.assertEqual(len(self.unit1._single_children), self.nchildren) self.assertEqual(len(self.unit1._multi_children), 0) self.assertEqual(len(self.unit1.data_children), self.nchildren) self.assertEqual(len(self.unit1.data_children_recur), self.nchildren) self.assertEqual(len(self.unit1.container_children), 0) self.assertEqual(len(self.unit1.container_children_recur), 0) self.assertEqual(len(self.unit1.children), self.nchildren) self.assertEqual(len(self.unit1.children_recur), self.nchildren) self.assertEqual(self.unit1._multi_children, ()) self.assertEqual(self.unit1.container_children, ()) self.assertEqual(self.unit1.container_children_recur, ()) assert_same_sub_schema(list(self.unit1._single_children), self.trains1a) assert_same_sub_schema(list(self.unit1.data_children), self.trains1a) assert_same_sub_schema(list(self.unit1.data_children_recur), self.trains1a) assert_same_sub_schema(list(self.unit1.children), self.trains1a) assert_same_sub_schema(list(self.unit1.children_recur), self.trains1a) self.assertEqual(len(self.unit1.parents), 1) self.assertEqual(self.unit1.parents[0].name, 'chx1')
def test__children(self): chx = ChannelIndex(index=np.arange(self.nchildren), name='chx1') chx.units = [self.unit1] chx.create_many_to_one_relationship() assert_neo_object_is_compliant(self.unit1) assert_neo_object_is_compliant(chx) self.assertEqual(self.unit1._container_child_objects, ()) self.assertEqual(self.unit1._data_child_objects, ('SpikeTrain',)) self.assertEqual(self.unit1._single_parent_objects, ('ChannelIndex',)) self.assertEqual(self.unit1._multi_child_objects, ()) self.assertEqual(self.unit1._multi_parent_objects, ()) self.assertEqual(self.unit1._child_properties, ()) self.assertEqual(self.unit1._single_child_objects, ('SpikeTrain',)) self.assertEqual(self.unit1._container_child_containers, ()) self.assertEqual(self.unit1._data_child_containers, ('spiketrains',)) self.assertEqual(self.unit1._single_child_containers, ('spiketrains',)) self.assertEqual(self.unit1._single_parent_containers, ('channel_index',)) self.assertEqual(self.unit1._multi_child_containers, ()) self.assertEqual(self.unit1._multi_parent_containers, ()) self.assertEqual(self.unit1._child_objects, ('SpikeTrain',)) self.assertEqual(self.unit1._child_containers, ('spiketrains',)) self.assertEqual(self.unit1._parent_objects, ('ChannelIndex',)) self.assertEqual(self.unit1._parent_containers, ('channel_index',)) self.assertEqual(len(self.unit1._single_children), self.nchildren) self.assertEqual(len(self.unit1._multi_children), 0) self.assertEqual(len(self.unit1.data_children), self.nchildren) self.assertEqual(len(self.unit1.data_children_recur), self.nchildren) self.assertEqual(len(self.unit1.container_children), 0) self.assertEqual(len(self.unit1.container_children_recur), 0) self.assertEqual(len(self.unit1.children), self.nchildren) self.assertEqual(len(self.unit1.children_recur), self.nchildren) self.assertEqual(self.unit1._multi_children, ()) self.assertEqual(self.unit1.container_children, ()) self.assertEqual(self.unit1.container_children_recur, ()) assert_same_sub_schema(list(self.unit1._single_children), self.trains1a) assert_same_sub_schema(list(self.unit1.data_children), self.trains1a) assert_same_sub_schema(list(self.unit1.data_children_recur), self.trains1a) assert_same_sub_schema(list(self.unit1.children), self.trains1a) assert_same_sub_schema(list(self.unit1.children_recur), self.trains1a) self.assertEqual(len(self.unit1.parents), 1) self.assertEqual(self.unit1.parents[0].name, 'chx1')