From df85eb597aad0ab3f689d03ae5813b0d9e8e368b Mon Sep 17 00:00:00 2001 From: tmadlener Date: Tue, 2 Apr 2024 17:27:51 +0200 Subject: [PATCH] Use float also for vectors of parameters if desired --- python/podio/frame.py | 2 +- tests/read_python_frame.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/python/podio/frame.py b/python/podio/frame.py index 1bbbfca0a..5e78345d2 100644 --- a/python/podio/frame.py +++ b/python/podio/frame.py @@ -249,7 +249,7 @@ def put_parameter(self, key, value, as_type=None): raise ValueError(f"Cannot put a parameter of type {type_name} into a Frame") par_type = vec_types[0] - if isinstance(value[0], float): + if as_type is None and isinstance(value[0], float): # Always store floats as doubles from the python side par_type = par_type.replace("float", "double") diff --git a/tests/read_python_frame.h b/tests/read_python_frame.h index 9a3a14f8c..318482ed9 100644 --- a/tests/read_python_frame.h +++ b/tests/read_python_frame.h @@ -87,6 +87,7 @@ int checkParameters(const podio::Frame& frame) { if (realFloats.size() != 3 || realFloats[0] != 1.23f || realFloats[1] != 4.56f || realFloats[2] != 7.89f) { std::cerr << "Parameter more_real_floats was not stored as correctly (expected [1.23, 4.56, 7.89], actual" << realFloats << ")" << std::endl; + return 1; } return 0;