From 9567649c6485a4fbc8b6149a93c9acfdaec04e27 Mon Sep 17 00:00:00 2001 From: larsevj Date: Wed, 9 Oct 2024 15:29:49 +0200 Subject: [PATCH] Handle empty cells in default sheet --- src/ert/config/design_matrix.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ert/config/design_matrix.py b/src/ert/config/design_matrix.py index ee8b611406d..f8a3b44e671 100644 --- a/src/ert/config/design_matrix.py +++ b/src/ert/config/design_matrix.py @@ -221,14 +221,23 @@ def _read_defaultssheet( return {} if len(default_df.columns) < 2: raise ValueError("Defaults sheet must have at least two columns") + empty_cells = [ + f"Row {default_df.index[i]}, column {default_df.columns[j]}" + for i, j in zip(*np.where(pd.isna(default_df))) + ] + if empty_cells > 0: + raise ValueError(f"Default sheet contains empty cells {empty_cells}") # Look for initial or trailing whitespace in parameter names. This # is disallowed as it can create user confusion and has no use-case. + whitespace_errors = [] for paramname in default_df.loc[:, 0]: if paramname != paramname.strip(): - raise ValueError( + whitespace_errors.append( f"Parameter name '{paramname}' in default values contains " "initial or trailing whitespace." ) + if whitespace_errors > 0: + raise ValueError(whitespace_errors) return {row[0]: convert_to_numeric(row[1]) for _, row in default_df.iterrows()}