From 0576415b6ebeebb32ab2074aa06ef95713a14a4e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk>
Date: Mon, 19 Dec 2022 18:34:47 +0000
Subject: [PATCH] fix(signal): cover empty cases

---
 src/agora/io/signal.py | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/agora/io/signal.py b/src/agora/io/signal.py
index d3eea4ac..3cfc358f 100644
--- a/src/agora/io/signal.py
+++ b/src/agora/io/signal.py
@@ -329,19 +329,25 @@ class Signal(BridgeH5):
         assert path in f, f"{path} not in {f}"
 
         dset = f[path]
-        index_names = copy(self.index_names)
 
+        values, index, columns = ([], [], [])
+
+        index_names = copy(self.index_names)
         valid_names = [lbl for lbl in index_names if lbl in dset.keys()]
-        index = pd.MultiIndex.from_arrays(
-            [dset[lbl] for lbl in valid_names], names=valid_names
-        )
+        if valid_names:
+
+            index = pd.MultiIndex.from_arrays(
+                [dset[lbl] for lbl in valid_names], names=valid_names
+            )
+
+            columns = dset.attrs.get("columns", None)  # dset.attrs["columns"]
+            if "timepoint" in dset:
+                columns = f[path + "/timepoint"][()]
 
-        columns = dset.attrs.get("columns", None)  # dset.attrs["columns"]
-        if "timepoint" in dset:
-            columns = f[path + "/timepoint"][()]
+            values = f[path + "/values"][()]
 
         return pd.DataFrame(
-            f[path + "/values"][()],
+            values,
             index=index,
             columns=columns,
         )
-- 
GitLab