From fa25340e5c899d84aa6f06d96ec8a0aad364ee09 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Mon, 29 Mar 2021 16:14:10 +0200 Subject: [PATCH] allow bitwise op on the gain cap --- python/scripts/generate_enums.py | 8 +++++++- python/src/enums.cpp | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/python/scripts/generate_enums.py b/python/scripts/generate_enums.py index e43f45adf..a954b783a 100644 --- a/python/scripts/generate_enums.py +++ b/python/scripts/generate_enums.py @@ -11,6 +11,8 @@ import subprocess from parse import remove_comments +allow_bitwise_op = ["M3_GainCaps"] + def single_line_enum(line): sub = line[line.find('{')+1:line.find('}')] return sub.strip().split(',') @@ -49,7 +51,11 @@ def extract_enums(lines): def generate_enum_string(enums): data = [] for key, value in enums.items(): - data.append(f'py::enum_(Defs, "{key}")\n') + if key in allow_bitwise_op: + tag=", py::arithmetic()" + else: + tag="" + data.append(f'py::enum_(Defs, "{key}"{tag})\n') for v in value: data.append(f'\t.value("{v}", slsDetectorDefs::{key}::{v})\n') data.append('.export_values();\n\n') diff --git a/python/src/enums.cpp b/python/src/enums.cpp index 3cd74abcd..7adc2ee5b 100644 --- a/python/src/enums.cpp +++ b/python/src/enums.cpp @@ -278,7 +278,8 @@ void init_enums(py::module &m) { slsDetectorDefs::timingSourceType::TIMING_EXTERNAL) .export_values(); - py::enum_(Defs, "M3_GainCaps") + py::enum_(Defs, "M3_GainCaps", + py::arithmetic()) .value("M3_C10pre", slsDetectorDefs::M3_GainCaps::M3_C10pre) .value("M3_C15sh", slsDetectorDefs::M3_GainCaps::M3_C15sh) .value("M3_C30sh", slsDetectorDefs::M3_GainCaps::M3_C30sh)