From 5d370edd2828861d1d15f6f0e960b4b37fc5f006 Mon Sep 17 00:00:00 2001 From: Tamas Gal <tgal@km3net.de> Date: Fri, 2 Oct 2020 12:29:12 +0200 Subject: [PATCH] Use AttrDict for definitions --- km3io/definitions/__init__.py | 8 ++++++++ km3io/tools.py | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/km3io/definitions/__init__.py b/km3io/definitions/__init__.py index f9d18d3..22a8c7d 100644 --- a/km3io/definitions/__init__.py +++ b/km3io/definitions/__init__.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 +from km3io.tools import AttrDict + from .mc_header import data as mc_header from .trigger import data as trigger @@ -8,6 +10,12 @@ from .reconstruction import data as reconstruction from .w2list_genhen import data as w2list_genhen from .w2list_gseagen import data as w2list_gseagen +trigger = AttrDict(trigger) +fitparameters = AttrDict(fitparameters) +reconstruction = AttrDict(reconstruction) +w2list_genhen = AttrDict(w2list_genhen) +w3list_gseagen = AttrDict(w2list_gseagen) + trigger_idx = {v: k for k, v in trigger.items()} fitparameters_idx = {v: k for k, v in fitparameters.items()} reconstruction_idx = {v: k for k, v in reconstruction.items()} diff --git a/km3io/tools.py b/km3io/tools.py index 0b856e2..d66a45d 100644 --- a/km3io/tools.py +++ b/km3io/tools.py @@ -11,6 +11,13 @@ BASKET_CACHE_SIZE = 110 * 1024**2 BASKET_CACHE = uproot.cache.ThreadSafeArrayCache(BASKET_CACHE_SIZE) +class AttrDict(dict): + """A dictionary which allows access to its key through attributes.""" + def __init__(self, *args, **kwargs): + super(AttrDict, self).__init__(*args, **kwargs) + self.__dict__ = self + + class cached_property: """A simple cache decorator for properties.""" def __init__(self, function): -- GitLab