Skip to content

Commit 122dae5

Browse files
committed
Make everest pass flowbase as eclbase to ert
1 parent df5a740 commit 122dae5

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

src/everest/config/everest_config.py

+14
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,20 @@ class EverestConfig(BaseModel):
231231
config_path: Path = Field()
232232
model_config = ConfigDict(extra="forbid", frozen=True)
233233

234+
@model_validator(mode="after")
235+
def validate_eclbase_flowbase(self) -> Self: # pylint: disable=E0213
236+
if self.definitions is None:
237+
return self
238+
239+
if "eclbase" in self.definitions and "flowbase" in self.definitions:
240+
raise ValueError(
241+
"Found both eclbase and flowbase in definitions config. "
242+
"Please use only one to point to the directory containing "
243+
"reservoir simulator files."
244+
)
245+
246+
return self
247+
234248
@model_validator(mode="after")
235249
def validate_queue_system(self) -> Self: # pylint: disable=E0213
236250
assert self.server is not None

src/everest/simulator/everest_to_ert.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,8 @@ def inject_default(key: str, value: Any) -> None:
172172
if key not in ert_config:
173173
ert_config[key] = value
174174

175-
inject_default(
176-
"ECLBASE",
177-
(ever_config.definitions if ever_config.definitions is not None else {}).get(
178-
"eclbase", "eclipse/ECL"
179-
),
180-
)
175+
defs = ever_config.definitions if ever_config.definitions is not None else {}
176+
inject_default("ECLBASE", defs.get("eclbase", defs.get("flowbase", "eclipse/ECL")))
181177

182178

183179
def _extract_simulator(ever_config: EverestConfig, ert_config: dict[str, Any]) -> None:

tests/everest/test_config_validation.py

+7
Original file line numberDiff line numberDiff line change
@@ -1186,3 +1186,10 @@ def test_export_deprecated_keys(key, value, min_config, change_to_tmpdir):
11861186
)
11871187
with pytest.warns(ConfigWarning, match=match_msg):
11881188
EverestConfig.load_file_with_argparser("config.yml", parser)
1189+
1190+
1191+
def test_that_definitions_eclbase_flowbase_are_mutually_exclusive():
1192+
with pytest.raises(
1193+
ValueError, match="Found both eclbase and flowbase in definitions config"
1194+
):
1195+
EverestConfig.with_defaults(definitions={"eclbase": "heh", "flowbase": "hah"})

tests/everest/test_res_initialization.py

+7
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,13 @@ def test_user_config_jobs_precedence(tmp_path, monkeypatch):
391391
assert installed_forward_model_steps_new.get(existing_job).executable == "echo"
392392

393393

394+
def test_that_definitions_passthrough_flowbase():
395+
ever_config = EverestConfig.with_defaults(definitions={"flowbase": "blargh"})
396+
397+
ert_config_dict = everest_to_ert_config_dict(ever_config)
398+
assert ert_config_dict["ECLBASE"] == "blargh"
399+
400+
394401
def test_that_definitions_passthrough_eclbase():
395402
ever_config = EverestConfig.with_defaults(definitions={"eclbase": "blorgh"})
396403

0 commit comments

Comments
 (0)