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