Add offline SimBoard bridge example (Chrysalis)#70
Merged
Conversation
Commit the simboard_bridge prototype (previously untracked) and add a self-contained, offline example of the SimBoard -> uxarray-mcp workflow. The SimBoard REST API contract this bridge targets (the -api subdomain and /api/v1 prefix) is documented upstream in E3SM-Project/simboard#246. - example.py: mocks the SimBoard /cases and /simulations responses, walks simboard_list_simulations -> simboard_get_paths, then runs run_analysis (inspect_mesh + calculate_area) locally on a synthetic HEALPix grid. No network, no HPC, no data files required. The demo run targets Chrysalis (ANL/LCRC) with /lcrc/group paths. - README.md: link the upstream PR and document the offline example alongside the existing live smoke test. - client.py / tools.py / smoke.py: reformatted by ruff on first commit.
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.
Adds a self-contained, runnable example of the SimBoard → uxarray-mcp workflow and commits the
simboard_bridgeprototype (which was previously untracked in git).Context
The SimBoard REST API contract this bridge targets — the
-apisubdomain and/api/v1prefix — is now documented upstream in E3SM-Project/simboard#246 (merged). This example showcases that contract end to end.What's here
prototypes/simboard_bridge/example.py— offline demo:simboard_list_simulations(machine="chrysalis", status="completed")— discovers a run (SimBoard responses mocked with the documented JSON shapes; no network).simboard_get_paths(sim_id)— resolves/lcrc/group/...artifact paths + machine identity (Chrysalis / ANL-LCRC / Slurm).run_analysis(operation="inspect_mesh")andcalculate_area— runs locally on a synthetichealpix:2grid, so no HPC endpoint or data files are needed.README.md— links the upstream PR and documents the offline example next to the existing live smoke test.client.py/tools.py/smoke.py— the prototype itself, now committed (reformatted by ruff on first commit).The demo uses Chrysalis (an endpoint we can actually reach) as the target machine; nothing in the example requires Perlmutter or Chrysalis access to run.
Scope
This stays under
prototypes/and is not wired into the registry — it remains a proof of concept, consistent with the existing README.Verification
uv run python -m prototypes.simboard_bridge.example— runs clean, offline.uv run pre-commit run --files prototypes/...— ruff + format pass.uv run mypy prototypes/simboard_bridge/— no issues (5 files).