From be9a0073f0cafcfa0d808e72f0afcc24bfaff60c Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Sun, 26 Jun 2022 21:48:49 +0200 Subject: [PATCH] added init from different detector dicts --- slic/core/acquisition/detcfg.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/slic/core/acquisition/detcfg.py b/slic/core/acquisition/detcfg.py index fe80f2de..912a5f62 100644 --- a/slic/core/acquisition/detcfg.py +++ b/slic/core/acquisition/detcfg.py @@ -4,6 +4,8 @@ from collections.abc import Mapping from collections.abc import Sequence from numbers import Number +from .broker_client import flatten_detectors #TODO: should probably move here + ALLOWED_PARAMS = dict( adc_to_energy = bool, @@ -73,6 +75,17 @@ class DictUpdateMixin: class DetectorConfig(DictUpdateMixin, dict): + def __init__(self, *args, **kwargs): + if len(args) == 1: + args = args[0] + if args is None: + args = [] + dets_args = flatten_detectors(args) + dets_kwargs = flatten_detectors(kwargs) + dets = dict(**dets_args, **dets_kwargs) + for k, v in dets.items(): + self.add(k, **v) + def __dir__(self): return ["add", "remove", "names"]