diff --git a/src/cal_tools/calcat_interface.py b/src/cal_tools/calcat_interface.py index aabee45033593c22797bc97362ed06f6517108a6..359280e5b63baf7f809722d2721d7ace4c5eb36d 100644 --- a/src/cal_tools/calcat_interface.py +++ b/src/cal_tools/calcat_interface.py @@ -120,10 +120,19 @@ class CalCatApi(metaclass=ClientWrapper): (dict) Operating condition for use in CalCat API. """ + def to_float_or_string(value): + """CALCAT expects data to either be float or a string. + """ + try: # Any digit or boolean + return float(value) + except: + return str(value) + return { - "parameters_conditions_attributes": [ - {"parameter_name": k, "value": str(v)} - for k, v in condition.items() + "parameters_conditions_attributes": [{ + "parameter_name": k, + "value": to_float_or_string(v) + } for k, v in condition.items() ] } diff --git a/src/cal_tools/calcat_interface2.py b/src/cal_tools/calcat_interface2.py index bc598d5726741c11a0a9a01983b640687702e7dc..aab6574759490a04ef576732896d0872a2cf50bb 100644 --- a/src/cal_tools/calcat_interface2.py +++ b/src/cal_tools/calcat_interface2.py @@ -470,9 +470,19 @@ class CalibrationData(Mapping): (dict) Operating condition for use in CalCat API. """ + def to_float_or_string(value): + """CALCAT expects data to either be float or a string. + """ + try: # Any digit or boolean + return float(value) + except: + return str(value) + return { - "parameters_conditions_attributes": [ - {"parameter_name": k, "value": str(v)} for k, v in condition.items() + "parameters_conditions_attributes": [{ + "parameter_name": k, + "value": to_float_or_string(v) + } for k, v in condition.items() ] }