From 32f54ee5bfc1f054bef50e5b20c1d81c4c0537f0 Mon Sep 17 00:00:00 2001
From: Tamas Gal <tgal@km3net.de>
Date: Sun, 22 Dec 2019 14:49:40 +0100
Subject: [PATCH] Allow slicing

---
 km3io/offline.py      | 11 +++++++++--
 tests/test_offline.py |  6 ++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/km3io/offline.py b/km3io/offline.py
index 6823a5d..ee868ef 100644
--- a/km3io/offline.py
+++ b/km3io/offline.py
@@ -570,8 +570,15 @@ class OfflineTracks:
             setattr(self, k, v)
 
     def __getitem__(self, item):
-        return OfflineTrack(self._keys, [v[item] for v in self._values],
-                            fit_keys=self._fit_keys)
+        if isinstance(item, int):
+            return OfflineTrack(self._keys, [v[item] for v in self._values],
+                                fit_keys=self._fit_keys)
+        else:
+            return OfflineTracks(
+                self._keys,
+                [v[item] for v in self._values],
+                fit_keys=self._fit_keys
+            )
 
     def __len__(self):
         try:
diff --git a/tests/test_offline.py b/tests/test_offline.py
index a95f5d7..9c73dbf 100644
--- a/tests/test_offline.py
+++ b/tests/test_offline.py
@@ -309,8 +309,10 @@ class TestOfflineTracks(unittest.TestCase):
     def test_slicing(self):
         tracks = self.tracks
         assert 10 == len(tracks)
-        track_selection = tracks[2:4]
-        assert 3 == len(track_selection)
+        track_selection = tracks[2:7]
+        assert 5 == len(track_selection)
+        track_selection_2 = tracks[1:3]
+        assert 2 == len(track_selection_2)
 
 
 class TestOfflineTrack(unittest.TestCase):
-- 
GitLab