Skip to content

Commit e41d3b7

Browse files
committed
Have DESIGN_MATRIX not require design_sheet and default_sheet
This commit makes the DESIGN_MATRIX keyword not require arguments for design and default sheet. Now DESIGN_SHEET defaults to `DesignSheet01` and `DEFAULT_SHEET` defaults to "DefaultSheet"
1 parent ea91400 commit e41d3b7

File tree

3 files changed

+18
-58
lines changed

3 files changed

+18
-58
lines changed

src/ert/config/design_matrix.py

+2-10
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ def __post_init__(self) -> None:
4444
def from_config_list(cls, config_list: list[str]) -> DesignMatrix:
4545
filename = Path(config_list[0])
4646
options = option_dict(config_list, 1)
47-
design_sheet = options.get("DESIGN_SHEET")
48-
default_sheet = options.get("DEFAULT_SHEET")
47+
design_sheet = options.get("DESIGN_SHEET", "DesignSheet01")
48+
default_sheet = options.get("DEFAULT_SHEET", "DefaultSheet")
4949
errors = []
5050
if filename.suffix not in {
5151
".xlsx",
@@ -56,14 +56,6 @@ def from_config_list(cls, config_list: list[str]) -> DesignMatrix:
5656
f"DESIGN_MATRIX must be of format .xls or .xlsx; is '{filename}'"
5757
).set_context(config_list)
5858
)
59-
if design_sheet is None:
60-
errors.append(
61-
ErrorInfo("Missing required DESIGN_SHEET").set_context(config_list)
62-
)
63-
if default_sheet is None:
64-
errors.append(
65-
ErrorInfo("Missing required DEFAULT_SHEET").set_context(config_list)
66-
)
6759
if design_sheet is not None and design_sheet == default_sheet:
6860
errors.append(
6961
ErrorInfo(

src/ert/config/parsing/config_schema.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def install_job_directory_keyword() -> SchemaItem:
257257
def design_matrix_keyword() -> SchemaItem:
258258
return SchemaItem(
259259
kw=ConfigKeys.DESIGN_MATRIX,
260-
argc_min=3,
260+
argc_min=1,
261261
argc_max=3,
262262
type_map=[
263263
SchemaItemType.EXISTING_PATH,

tests/ert/unit_tests/config/test_analysis_config.py

+15-47
Original file line numberDiff line numberDiff line change
@@ -103,53 +103,21 @@ def test_invalid_min_realization_raises_config_validation_error():
103103
)
104104

105105

106-
def test_invalid_design_matrix_format_raises_validation_error():
107-
with pytest.raises(
108-
ConfigValidationError,
109-
match="DESIGN_MATRIX must be of format \\.xls or \\.xlsx; is 'my_matrix\\.txt'",
110-
):
111-
AnalysisConfig.from_dict(
112-
{
113-
ConfigKeys.NUM_REALIZATIONS: 1,
114-
ConfigKeys.DESIGN_MATRIX: [
115-
[
116-
"my_matrix.txt",
117-
"DESIGN_SHEET:sheet1",
118-
"DEFAULT_SHEET:sheet2",
119-
],
120-
],
121-
}
122-
)
123-
124-
125-
def test_design_matrix_without_design_sheet_raises_validation_error():
126-
with pytest.raises(ConfigValidationError, match="Missing required DESIGN_SHEET"):
127-
AnalysisConfig.from_dict(
128-
{
129-
ConfigKeys.DESIGN_MATRIX: [
130-
[
131-
"my_matrix.xlsx",
132-
"DESIGN_:design",
133-
"DEFAULT_SHEET:default",
134-
]
135-
],
136-
}
137-
)
138-
139-
140-
def test_design_matrix_without_default_sheet_raises_validation_error():
141-
with pytest.raises(ConfigValidationError, match="Missing required DEFAULT_SHEET"):
142-
AnalysisConfig.from_dict(
143-
{
144-
ConfigKeys.DESIGN_MATRIX: [
145-
[
146-
"my_matrix.xlsx",
147-
"DESIGN_SHEET:design",
148-
"DEFAULT_:default",
149-
]
150-
],
151-
}
152-
)
106+
def test_design_matrix_default_arguments():
107+
config = AnalysisConfig.from_dict(
108+
{
109+
ConfigKeys.DESIGN_MATRIX: [
110+
[
111+
"my_matrix.xlsx",
112+
"DESIGN_SHEET:design",
113+
"DEFAULT_:default",
114+
]
115+
],
116+
}
117+
)
118+
assert config.design_matrix
119+
assert config.design_matrix.design_sheet == "DesignSheet01"
120+
assert config.design_matrix.default_sheet == "DefaultSheet"
153121

154122

155123
def test_invalid_min_realization_percentage_raises_config_validation_error():

0 commit comments

Comments
 (0)