diff --git a/SciFiReaders/readers/SID/Nsid_reader.py b/SciFiReaders/readers/SID/Nsid_reader.py index de17d96..d407e60 100644 --- a/SciFiReaders/readers/SID/Nsid_reader.py +++ b/SciFiReaders/readers/SID/Nsid_reader.py @@ -155,18 +155,21 @@ def read_all(self, recursive=True, parent=None): if recursive: list_of_main = self._main_dsets + keys = ['Channel_{:03}'.format(i) for i in range(len(list_of_main))] else: list_of_main = [] + keys = [] for key in h5_group: if isinstance(h5_group[key], h5py.Dataset): if check_if_main(h5_group[key]): list_of_main.append(h5_group[key]) + keys.append(key) # Go through each of the identified - list_of_datasets = [] - for dset in list_of_main: - list_of_datasets.append(read_h5py_dataset(dset)) + list_of_datasets = {} + for i,dset in enumerate(list_of_main): + list_of_datasets[keys[i]] = read_h5py_dataset(dset) return list_of_datasets -def close(self): - self._h5_file.close() \ No newline at end of file + def close(self): + self._h5_file.close() \ No newline at end of file diff --git a/tests/readers/SID/test_nsid_reader.py b/tests/readers/SID/test_nsid_reader.py index f4c8dab..4556ba1 100644 --- a/tests/readers/SID/test_nsid_reader.py +++ b/tests/readers/SID/test_nsid_reader.py @@ -17,16 +17,18 @@ def test_nsid_bepfm_file(self): data = reader.read() assert len(data)==3, "Data should have been length 3 but was instead {}".format(len(data)) #Check to see if these are sidpy datasets - for ind in range(3): - assert type(data[ind])==sidpy.sid.dataset.Dataset, "Expected sidpy dataset but received {}".format(type(data[ind])) - - assert data[0].shape==(3, 128, 128, 1) - assert data[1].shape == (128, 128, 61) - assert data[2].shape == (128,128,5) + for key in data: + assert type(data[key])==sidpy.sid.dataset.Dataset, "Expected sidpy dataset but received {}".format(type(data[ind])) + + data_keys = list(data.keys()) + + assert data[data_keys[0]].shape==(3, 128, 128, 1) + assert data[data_keys[1]].shape == (128, 128, 61) + assert data[data_keys[2]].shape == (128,128,5) - assert len(data[0].original_metadata.keys())==285, "Expected 285 keys but received {} for data[0]" - assert len(data[1].original_metadata.keys())==285, "Expected 285 keys but received {} for data[1]" - assert len(data[2].original_metadata.keys())==0, "Expected 0 keys but received {} for data[2]" + assert len(data[data_keys[0]].original_metadata.keys())==285, "Expected 285 keys but received {} for data[0]" + assert len(data[data_keys[1]].original_metadata.keys())==285, "Expected 285 keys but received {} for data[1]" + assert len(data[data_keys[2]].original_metadata.keys())==0, "Expected 0 keys but received {} for data[2]"