feat(interface): generic RunConfig base + opaque config mapping (M02) - #5
Merged
Conversation
Thin cross-model run-config base with the only fields universal to any probabilistic forecast model — quantile_levels, num_trajectories, num_samples — all optional, with field validation (levels in (0,1), positive counts). Retype train/retrain `config: Any` -> `Mapping[str, Any]` and document that `config` is otherwise opaque, each model self-validating. No model-specific fields in FI. Closes Q8. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…s retention count Co-designed with aquacast milestone 17 (full predictive distribution). - num_weight_samples (epistemic weight draws, gt=0 when set): together with num_samples (aleatoric draws per weight) the pooled num_weight_samples × num_samples draws are the full predictive distribution. - num_trajectories redefined to a RETENTION count of raw temporally-coherent paths to emit as TrajectoryData (0 = none), no longer a generation count — relaxed gt=0 -> ge=0 to allow explicit "emit none". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a thin, generic
RunConfigPydantic base to FI — the only run-config fields universal to any probabilistic forecast model, all optional:quantile_levels: list[float] | None— validated to(0, 1)(reuses the existingvariable_output.pyrule)num_trajectories: int | None—Field(gt=0)num_samples: int | None—Field(gt=0)Everything model-specific stays opaque:
train/retrainretypeconfig: Any→config: Mapping[str, Any], documented as a mapping each model self-validates. No aquacast-specific class in FI. Closes design question Q8.Milestone
FI-integration milestone 02 (
docs/FI_integration/milestones.mdin aquacast). This is the FI-side half; aquacast consumes the base later (M09).Verification
uv run pytest -q -k run_config→ 6 passeduv run pytest -q(full suite) → 183 passeduv run ruff check→ cleanfrom forecast_interface import RunConfigresolves (both top-level andinterfacepaths)Scope
Base + validation + export + one unit test + the authorized
configretype only. No trainer/finetune/model-private fields, no merge/assembly logic, no aquacast consumption.🤖 Generated with Claude Code