Skip to content

Commit e138a24

Browse files
committed
fix typing and tests
1 parent 2ae45e3 commit e138a24

4 files changed

Lines changed: 15 additions & 17 deletions

File tree

src/ert/run_models/model_factory.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -322,25 +322,19 @@ def _setup_manual_update_enif(
322322
status_queue: SimpleQueue[StatusEvents],
323323
) -> ManualUpdate:
324324
active_realizations = _realizations(args, config.runpath_config.num_realizations)
325+
validate_minimum_realizations(config, active_realizations.tolist())
325326

326-
return ManualUpdateEnIF(
327+
runmodel_config = ManualUpdateConfig(
327328
random_seed=config.random_seed,
328329
active_realizations=active_realizations.tolist(),
329330
ensemble_id=args.ensemble_id,
330331
minimum_required_realizations=config.analysis_config.minimum_required_realizations,
331332
target_ensemble=args.target_ensemble,
332-
config=config,
333333
storage_path=config.ens_path,
334334
queue_config=config.queue_config,
335335
analysis_settings=config.analysis_config.es_settings,
336336
update_settings=update_settings,
337-
status_queue=status_queue,
338337
runpath_file=config.runpath_file,
339-
design_matrix=config.analysis_config.design_matrix,
340-
parameter_configuration=config.ensemble_config.parameter_configuration,
341-
response_configuration=config.ensemble_config.response_configuration,
342-
derived_response_configuration=config.ensemble_config.derived_response_configuration,
343-
ert_templates=config.ert_templates,
344338
user_config_file=Path(config.user_config_file),
345339
env_vars=config.env_vars,
346340
env_pr_fm_step=config.env_pr_fm_step,
@@ -349,9 +343,10 @@ def _setup_manual_update_enif(
349343
substitutions=config.substitutions,
350344
hooked_workflows=config.hooked_workflows,
351345
log_path=config.analysis_config.log_path,
352-
observations=config.observation_declarations,
346+
ert_templates=config.ert_templates,
353347
shape_registry=config.shape_registry,
354348
)
349+
return ManualUpdateEnIF(**runmodel_config.model_dump(), status_queue=status_queue)
355350

356351

357352
def _setup_ensemble_smoother(

src/ert/run_models/run_model.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import numpy as np
2525
from pydantic import (
26+
Field,
2627
PrivateAttr,
2728
computed_field,
2829
field_validator,
@@ -212,6 +213,8 @@ def _restore_plugin_forward_model_step_subclasses(self) -> Self:
212213

213214

214215
class RunModel(RunModelConfig, ABC):
216+
status_queue: queue.SimpleQueue[StatusEvents] = Field(exclude=True, repr=False)
217+
215218
# Private attributes initialized in model_post_init
216219
_initial_realizations_mask: list[bool] = PrivateAttr()
217220
_completed_realizations_mask: list[bool] = PrivateAttr(default_factory=list)
@@ -230,12 +233,10 @@ class RunModel(RunModelConfig, ABC):
230233
def __init__(
231234
self,
232235
*,
233-
status_queue: queue.SimpleQueue[StatusEvents],
234236
_total_iterations: int | None = None,
235237
**data: Any,
236238
) -> None:
237239
super().__init__(**data)
238-
self._status_queue = status_queue
239240

240241
if _total_iterations is not None:
241242
self._total_iterations = _total_iterations
@@ -276,7 +277,7 @@ def log_at_startup(self) -> None:
276277
keys_to_drop = [
277278
"_end_event",
278279
"_queue_config",
279-
"_status_queue",
280+
"status_queue",
280281
"_storage",
281282
"rng",
282283
"run_paths",
@@ -367,7 +368,7 @@ def experiment_type(self) -> ExperimentType:
367368
return self.__class__._experiment_type()
368369

369370
def send_event(self, event: StatusEvents) -> None:
370-
self._status_queue.put(event)
371+
self.status_queue.put(event)
371372

372373
@property
373374
def ensemble_size(self) -> int:

tests/ert/unit_tests/run_models/test_base_run_model.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@ def test_run_model_does_not_support_rerun_failed_realizations(minimum_case):
6969

7070
def test_status_when_rerunning_on_non_rerunnable_model(use_tmpdir):
7171
brm = create_run_model()
72-
brm._status_queue = SimpleQueue()
72+
brm.status_queue = SimpleQueue()
7373
brm.start_simulations_thread(
7474
EvaluatorServerConfig(use_token=False), rerun_failed_realizations=True
7575
)
76-
assert isinstance(brm._status_queue.get(), StartEvent)
77-
assert brm._status_queue.get() == EndEvent(
76+
assert isinstance(brm.status_queue.get(), StartEvent)
77+
assert brm.status_queue.get() == EndEvent(
7878
event_type="EndEvent",
7979
failed=True,
8080
msg="Run model None does not support restart/rerun of failed simulations.\n",

tests/ert/unit_tests/test_tracking.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from argparse import ArgumentParser
66
from collections.abc import Generator
77
from pathlib import Path
8+
from queue import SimpleQueue
89

910
import pytest
1011
from jsonpath_ng import parse
@@ -34,8 +35,9 @@
3435
from ert.run_models.model_factory import create_model
3536

3637

37-
class Events:
38+
class Events(SimpleQueue):
3839
def __init__(self) -> None:
40+
super().__init__()
3941
self.events: list[BaseModel] = []
4042
self.environment = []
4143

0 commit comments

Comments
 (0)