Skip to content

Commit

Permalink
fixup: changed to raising the exception
Browse files Browse the repository at this point in the history
  • Loading branch information
JHolba committed Feb 27, 2025
1 parent c0158cd commit 7ae6d9e
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions src/ert/run_models/base_run_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def delete_runpath(run_path: str) -> None:
shutil.rmtree(run_path)


class _UserCancelled(Exception):
class UserCancelled(Exception):
pass


Expand Down Expand Up @@ -572,8 +572,9 @@ async def run_monitor(
logger.debug(
"observed evaluation cancelled event, exit drainer"
)
# Allow track() to emit an EndEvent.
return False
raise UserCancelled(
"Experiment cancelled by user during evaluation"
)
elif type(event) is EETerminated:
logger.debug("got terminated event")

Expand All @@ -584,6 +585,8 @@ async def run_monitor(
logger.debug(
"Run model canceled - during evaluation - cancel sent"
)
except UserCancelled:
raise
except BaseException as e:
logger.exception(f"unexpected error: {e}")
# We really don't know what happened... shut down
Expand All @@ -598,11 +601,11 @@ async def run_ensemble_evaluator_async(
run_args: list[RunArg],
ensemble: Ensemble,
ee_config: EvaluatorServerConfig,
) -> list[int] | _UserCancelled:
) -> list[int]:
if not self._end_queue.empty():
logger.debug("Run model canceled - pre evaluation")
self._end_queue.get()
return _UserCancelled()
raise UserCancelled("Experiment cancelled by user in pre evaluation")

ee_ensemble = self._build_ensemble(run_args, ensemble.experiment_id)
evaluator = EnsembleEvaluator(
Expand All @@ -615,7 +618,7 @@ async def run_ensemble_evaluator_async(
await evaluator._server_started
if not (await self.run_monitor(ee_config, ensemble.iteration)):
await evaluator_task
return _UserCancelled()
return []

logger.debug("observed that model was finished, waiting tasks completion...")
# The model has finished, we indicate this by sending a DONE
Expand All @@ -625,7 +628,7 @@ async def run_ensemble_evaluator_async(
logger.debug("Run model canceled - post evaluation")
self._end_queue.get()
await evaluator_task
return _UserCancelled()
raise UserCancelled("Experiment cancelled by user in post evaluation")

await evaluator_task
ensemble.refresh_ensemble_state()
Expand All @@ -639,7 +642,7 @@ def run_ensemble_evaluator(
run_args: list[RunArg],
ensemble: Ensemble,
ee_config: EvaluatorServerConfig,
) -> list[int] | _UserCancelled:
) -> list[int]:
return asyncio.run(
self.run_ensemble_evaluator_async(run_args, ensemble, ee_config)
)
Expand Down Expand Up @@ -762,15 +765,15 @@ def _evaluate_and_postprocess(
"run_paths": self.run_paths,
},
)
result = self.run_ensemble_evaluator(
run_args,
ensemble,
evaluator_server_config,
)
if type(result) is _UserCancelled:
try:
successful_realizations = self.run_ensemble_evaluator(
run_args,
ensemble,
evaluator_server_config,
)
except UserCancelled:
self.active_realizations = [False for _ in self.active_realizations]
raise _UserCancelled("Experiment cancelled by user")
successful_realizations = cast(list[int], result)
raise

starting_realizations = [real.iens for real in run_args if real.active]
failed_realizations = list(
Expand Down

0 comments on commit 7ae6d9e

Please sign in to comment.