Skip to content
Snippets Groups Projects

WIP: Slicing and refactoring offline

Closed Tamas Gal requested to merge 37-user-parameters-seem-to-be-transposed into master
Compare and Show latest version
1 file
+ 12
1
Compare changes
  • Side-by-side
  • Inline
+ 12
1
@@ -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]
Loading