diff --git a/pymeasure/experiment/results.py b/pymeasure/experiment/results.py index 921306a201..c52853e7c9 100644 --- a/pymeasure/experiment/results.py +++ b/pymeasure/experiment/results.py @@ -121,8 +121,6 @@ def unique_filename(directory, prefix='DATA', suffix='', ext='csv', class CSVFormatter(logging.Formatter): """ Formatter of data results """ - numeric_types = (float, int, Decimal) - def __init__(self, columns, delimiter=','): """Creates a csv formatter for a given list of columns (=header). @@ -146,7 +144,7 @@ def format(self, record): line = [] for x in self.columns: value = record.get(x, float("nan")) - if type(value) in self.numeric_types: + if isinstance(value, (float, int, Decimal)) and type(value) is not bool: line.append(f"{value}") else: units = self.units.get(x, None) diff --git a/tests/experiment/test_results.py b/tests/experiment/test_results.py index 0d4035567c..cb09bf1364 100644 --- a/tests/experiment/test_results.py +++ b/tests/experiment/test_results.py @@ -70,7 +70,9 @@ def test_csv_formatter_format(self): ('magnetic (T)', 7, "7"), ('string', "abcdef", "abcdef"), ('count', 9 * ureg.dimensionless, "9"), - ('boolean', True, "True") + ('boolean', True, "True"), + ('numpy (V)', np.float64(1.1), "1.1"), + ('boolean nan (V)', True, "nan"), )) def test_unitful(self, head, value, result): """Test, whether units are appended correctly"""