From 9fce113ce782756b42ab83227ea83b42e715957f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk> Date: Thu, 29 Sep 2022 11:16:21 +0100 Subject: [PATCH] fix(writer): Fringe case uncovered, all cells new --- src/agora/io/writer.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/agora/io/writer.py b/src/agora/io/writer.py index d3030bfd..7ea02335 100644 --- a/src/agora/io/writer.py +++ b/src/agora/io/writer.py @@ -703,10 +703,15 @@ class Writer(BridgeH5): # Add found cells dset.resize(dset.shape[1] + df.shape[1], axis=1) dset[:, ntps:] = np.nan - for i, tp in enumerate(df.columns): - dset[ - self.id_cache[df.index.nlevels]["found_indices"], tp - ] = existing_values[:, i] + + found_indices_sorted = self.id_cache[df.index.nlevels][ + "found_indices" + ] + if found_indices_sorted.any(): + # h5py does not allow bidimensional indexing, + # so we have to iterate over the columns + for i, tp in enumerate(df.columns): + dset[found_indices_sorted, tp] = existing_values[:, i] # Add new cells n_newcells = len( self.id_cache[df.index.nlevels]["additional_multis"] -- GitLab