Tempo Framework — Overview
The Tempo Framework orchestrates TEMPO/TEMPO2 runs in a predictable, reproducible way. In the current package surface, parsed execution and examples are centered on Tempo2. It is built from small, typed settings that describe paths, engine options, input modifications, what to capture/keep, runtime workspace layout, and logging.
Core ideas:
- You configure a run using
TempoRunSettings(composed ofRunPaths,EngineOptions,InputModifiers,CaptureOptions,RetentionOptions,WhiteNoiseOptions,WorkspaceOptions,LoggingOptions). - Files are materialized into a job workspace before execution, according to
WorkspaceOptions. - The engine runs with consistent flags and working directory selection.
- Outputs are parsed into structured Julia results.
Data flow (typical)
- Build
TempoRunSettings(or copy/modify withcopy_with). - Optionally
validate(settings)to check inputs andpar_outputfilename. - Clean old artifacts in the job area (optional,
cleanup_before_run=true). - Materialize a job workspace (flat or split layout).
- Execute TEMPO/TEMPO2 with derived flags (capture residuals if requested).
- Parse engine outputs into result types.
- Optionally save artifacts and clean temporary files per policy.
Paths and layout
par_inputandtim_inputare file names relative towork_dir.par_outputis a filename-only token; the runner writes it under:job_root/<par_output>forlayout=:flatjob_root/output/<par_output>forlayout=:split
WorkspaceOptions (highlights)
work_mode = :inplace | :jobdirandjob_namecontrol where the job root lives.layout = :flat | :splitand optionaltemp_dircontrol on-disk structure and execution cwd.link_tim,snapshot_parcontrol how inputs are staged into the job root.cleanup_before_run,keep_tmp_on_success,keep_tmp_on_errorcontrol cleanup behavior.timeout_s,write_manifest, andmanifest_styleare currently reserved workspace fields; timeout enforcement and manifest writing are deferred.- Optional I/O mirroring controls (e.g.,
io_mirror = :none | :full | (:depth_minus, N)if enabled in your build) can mirror job directories or outputs up the directory tree.
Results (high level)
Parsing builds structured results that can include:
- Basic fit/engine outputs and internal iterations
- Residual statistics
- Optional white noise diagnostics (if enabled)
See the dedicated Results page for details.