From 266d11f283a8f3ab7dfb63672e2168b8860a5f42 Mon Sep 17 00:00:00 2001 From: Florian Deconinck Date: Fri, 27 Mar 2026 14:13:59 -0400 Subject: [PATCH 1/3] Remove `DaceConfig` via dict (unusuable) Use the defered initialization to push a DaceConfig which is controlled by FV3_DACEMODE --- pace/driver.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pace/driver.py b/pace/driver.py index 1bcb3ed2..f9190117 100644 --- a/pace/driver.py +++ b/pace/driver.py @@ -285,13 +285,6 @@ def from_dict(cls, kwargs: Dict[str, Any]) -> "DriverConfig": hooks=analytic_hooks, ) - if ( - isinstance(kwargs["stencil_config"], dict) - and "dace_config" in kwargs["stencil_config"].keys() - ): - kwargs["stencil_config"]["dace_config"] = DaceConfig.from_dict( - data=kwargs["stencil_config"]["dace_config"] - ) if ( isinstance(kwargs["stencil_config"], dict) and "compilation_config" in kwargs["stencil_config"].keys() @@ -592,6 +585,11 @@ def _update_driver_config_with_communicator( communicator=communicator, ) self.config.stencil_config.compilation_config = compilation_config + self.config.stencil_config.dace_config = DaceConfig( + communicator=communicator, + backend=self.config.stencil_config.backend, + orchestration=None + ) @dace_inhibitor def _callback_diagnostics(self): From cf63b708b4c12a5b52c664dc9f81660dc2389c9d Mon Sep 17 00:00:00 2001 From: Florian Deconinck Date: Fri, 27 Mar 2026 14:50:10 -0400 Subject: [PATCH 2/3] Lint --- pace/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pace/driver.py b/pace/driver.py index f9190117..d0183961 100644 --- a/pace/driver.py +++ b/pace/driver.py @@ -588,7 +588,7 @@ def _update_driver_config_with_communicator( self.config.stencil_config.dace_config = DaceConfig( communicator=communicator, backend=self.config.stencil_config.backend, - orchestration=None + orchestration=None, ) @dace_inhibitor From c37c4fb59684c503f867efe5a2a7c018c594f3d3 Mon Sep 17 00:00:00 2001 From: Florian Deconinck Date: Mon, 13 Apr 2026 15:00:06 -0400 Subject: [PATCH 3/3] Pop config form restart write --- pace/driver.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pace/driver.py b/pace/driver.py index d0183961..49fabf36 100644 --- a/pace/driver.py +++ b/pace/driver.py @@ -305,10 +305,6 @@ def write_for_restart( restart_path: str, ): config_dict = dataclasses.asdict(self) - if self.stencil_config.dace_config: - config_dict["stencil_config"][ - "dace_config" - ] = self.stencil_config.dace_config.as_dict() config_dict["stencil_config"][ "compilation_config" ] = self.stencil_config.compilation_config.as_dict() @@ -331,6 +327,10 @@ def write_for_restart( # restart config doesn't have 'case' if "case" in config_dict["initialization"]["config"].keys(): del config_dict["initialization"]["config"]["case"] + # remove dace config - it will be init from other piece of the config + # during Driver.__init__ + config_dict["stencil_config"].pop("dace_config", None) + with open(f"{restart_path}/restart.yaml", "w") as file: yaml.safe_dump(config_dict, file)