From 58e0df1a0b52adec9cfb42aeb6a22a34fbdaa85a Mon Sep 17 00:00:00 2001 From: Martijn Govers Date: Tue, 9 Dec 2025 15:16:36 +0100 Subject: [PATCH] minor refactor correct design load float columns Signed-off-by: Martijn Govers --- .../converters/tabular_converter.py | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/power_grid_model_io/converters/tabular_converter.py b/src/power_grid_model_io/converters/tabular_converter.py index b596d1ac..d6cee260 100644 --- a/src/power_grid_model_io/converters/tabular_converter.py +++ b/src/power_grid_model_io/converters/tabular_converter.py @@ -482,14 +482,18 @@ def _parse_col_def_column_name( col_data = self._apply_multiplier(table=table, column=col_name, data=col_data) return pd.DataFrame(col_data) - try: # Maybe it is not a column name, but a float value like 'inf', let's try to convert the string to a float - const_value = float(col_def) - except ValueError: - # pylint: disable=raise-missing-from - columns_str = " and ".join(f"'{col_name}'" for col_name in columns) - raise KeyError(f"Could not find column {columns_str} on table '{table}'") - - return self._parse_col_def_const(data=data, table=table, col_def=const_value, table_mask=table_mask) + def _get_float(value: str) -> Optional[float]: + try: + return float(value) + except ValueError: + return None + + # Maybe it is not a column name, but a float value like 'inf', let's try to convert the string to a float + if (const_value := _get_float(col_def)) is not None: + return self._parse_col_def_const(data=data, table=table, col_def=const_value, table_mask=table_mask) + + columns_str = " and ".join(f"'{col_name}'" for col_name in columns) + raise KeyError(f"Could not find column {columns_str} on table '{table}'") def _apply_multiplier(self, table: str, column: str, data: pd.Series) -> pd.Series: if self._multipliers is None: