4. Drivers
The various software components required by EAGLE are executed by uwtools drivers implemented as Python
modules under src/eagle/. By default, the targets in src/Makefile invoke drivers’ most comprehensive
tasks, i.e. those that configure and execute the component to produce its final output. However, each driver
provides a number of tasks, some of which depend on others, and lower-level tasks can be invoked to request less
than full execution of the driver, which can be useful during development and debugging.
To request a specific task, add a task= clause to the appropriate make target. To see a list of available
tasks, specify task=?.
4.1. Inspect Available Tasks
To list the tasks available for the Inference driver:
$ make inference config=eagle.yaml task=?
+ uw execute --module eagle/inference/inference.py --classname Inference
[2026-02-27T23:58:43] ERROR Available tasks:
[2026-02-27T23:58:43] ERROR anemoi_config
[2026-02-27T23:58:43] ERROR Anemoi-inference config created with specified checkpoint path.
[2026-02-27T23:58:43] ERROR provisioned_rundir
[2026-02-27T23:58:43] ERROR Run directory provisioned with all required content.
[2026-02-27T23:58:43] ERROR run
[2026-02-27T23:58:43] ERROR A run.
[2026-02-27T23:58:43] ERROR runscript
[2026-02-27T23:58:43] ERROR The runscript.
[2026-02-27T23:58:43] ERROR show_output
[2026-02-27T23:58:43] ERROR Show the output to be created by this component.
[2026-02-27T23:58:43] ERROR validate
[2026-02-27T23:58:43] ERROR Validate the UW driver config.
The provisioned_rundir task provisions the run directory with all its required content, but
would not execute the anemoi-inference component. The run task would fully execute inference.
4.2. Provision a Runscript
To invoke the Inference driver’s runscript task, provisioning only the component’s runscript:
$ make inference config=eagle.yaml task=runscript
+ uw execute --config-file eagle.yaml --module eagle/inference/inference.py --classname Inference --task runscript --batch
[2026-02-27T22:35:11] INFO Schema validation succeeded for inference config
[2026-02-27T22:35:11] INFO Validating config against internal schema: platform
[2026-02-27T22:35:11] INFO Schema validation succeeded for platform config
[2026-02-27T22:35:11] INFO inference runscript.inference: Executing
[2026-02-27T22:35:11] INFO inference runscript.inference: Ready
The previously non-existent run/<expname>/inference/ directory now contains:
$ tree run/<expname>/inference/
run/<expname>/inference/
\--- runscript.inference
1 directory, 1 file
4.3. Editing a Provisioned Runscript
Since uwtools driver tasks are idempotent, now that runscript.inference exists, it will not be overwritten
by subsequent driver invocations. It could now be manually edited, for example to add debugging statements, and
the run task then invoked to execute inference with the debugging statements in place. If runscript.inference
were manually deleted and the driver invoked again, the runscript would be recreated with its default contents.