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