diff --git a/km3io/offline.py b/km3io/offline.py index 981de8316462793eb1d9f5639b49ba41c8186d86..7dfffa1227c5e0ac26af0918239df4334f26af61 100644 --- a/km3io/offline.py +++ b/km3io/offline.py @@ -489,16 +489,27 @@ class BranchElement: self.name = mapper.name self._tree = tree self._branch = tree[mapper.key] - keys = [k.decode('utf-8') for k in self._branch.keys()] + keys = {k.decode('utf-8') for k in self._branch.keys()} - set(["trks.usr_data"]) + print(keys) self._keymap = {**{mapper.attrparser(k): k for k in keys}, **mapper.extra_keys} self._index = index + # self._EntryType = namedtuple(mapper.name[:-1], self.keys()) + # for key in keys: # setattr(self, key, cached_property(self[key])) def __getitem__(self, item): if isinstance(item, slice): return self.__class__(self._tree, self.mapper, index=item) + if isinstance(item, int): + return { + key: self._branch[self._keymap[key]].lazyarray( + + basketcache=uproot.cache.ThreadSafeArrayCache( + BASKET_CACHE_SIZE) + )[self._index, item] for key in self.keys() + } return self._branch[self._keymap[item]].lazyarray( basketcache=uproot.cache.ThreadSafeArrayCache( BASKET_CACHE_SIZE))[self._index]