diff --git a/km3io/definitions/__init__.py b/km3io/definitions/__init__.py index f9d18d31391b2e59a2cd26145e69dbc9233e49cb..22a8c7d2345e7366fd5bc4cd3709317d0bfd96f1 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 0b856e2fafa37063608d21e9cf638a743e5b3f18..d66a45d6062836d411c191b0f3e03a9a88d83ede 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):