From 1a7aa0ab1f1f7587178decb1212d6a98a7c15fbd Mon Sep 17 00:00:00 2001
From: Tamas Gal <tgal@km3net.de>
Date: Thu, 5 Mar 2020 08:34:55 +0100
Subject: [PATCH] Add single instance access

---
 km3io/offline.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/km3io/offline.py b/km3io/offline.py
index 981de83..7dfffa1 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]
-- 
GitLab