diff --git a/km3io/offline.py b/km3io/offline.py index 6823a5d1aabf514e02509f24a05fa8ab8f9c6d4e..ee868ef9402aa4d2487b1449b710df202aaad51f 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 a95f5d7b8d823249894f38e84d1ed930987b79f5..9c73dbf05def6e8397531fa70c6863502e6b97ab 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):