Add dataset status source of truth. - #239
Conversation
|
Updated the branch with latest Also updated the Local validation after merge:
Result:
|
|
Added you as a reviewer, but please feel free to change to someone else as you see fit. I also made a safer design choice to use a new benchmaxxing/datasets/status.py file for tracking readiness status (updated readme too), so I would like your review/feedback on it too. |
|
Clean, one authoritative status table beats scattered notes and the CLI table formatting is tidy. One ask before merge: confirm the status entries match what the paper's per-dataset coverage grid claims, so the two do not drift. Then good to go. Note #220 and #251 also touch cli.py, so expect a small rebase depending on merge order. |
|
Updated the dataset readiness status to mirror the paper's per-dataset coverage grid more directly. Instead of a single
The CLI now surfaces those fields alongside lane, staged status, adapter status, and blocker:
Local validation:
Result:
|
sebasmos
left a comment
There was a problem hiding this comment.
This is exactly it: solo / cascade / plausibility / referee now tracked per dataset, with medqa and nih reading done and the rest pending under the right blockers, so it mirrors the paper grid rather than drifting from it. Approving to merge. Land it after #251 since both touch cli.py.
Agastya191
left a comment
There was a problem hiding this comment.
Good work, this is a genuinely useful source of truth: keeping readiness in status.py instead of bolting fields onto DatasetSpec keeps it testable without touching every adapter, the per-experiment columns (solo/cascade/plausibility/referee) mirror the paper grid, and the imaging-vs-text plausibility="not applicable" split is internally coherent. One thing on the guard though: test_dataset_status_covers_registered_adapters only asserts registered <= status_names, and the adapter field is free text (every entry reads "coded" except ehr's "coded loader"), so nothing ties a "coded" claim back to registry.names(). Since the module's own docstring says it will carry not-yet-registered datasets, the day someone adds a planned entry that says adapter="coded", datasets list will advertise it as ready while registry.get(name) raises KeyError on it: the exact drift this module exists to prevent, and it only surfaces when someone tries to run it. You have options here, but I'd cross-check it in the test, asserting that any entry claiming a coded adapter is in registry.names() and pinning adapter to a small vocabulary so "coded" vs "coded loader" can't slip through, so the readiness claim stays tied to what's actually importable.
|
@Agastya191: Thanks for the review and the feedback. @sebasmos: Addressed the adapter-status guard. Changes:
Local validation:
Result:
|
Add dataset status source of truth.
Closes #152
Summary
Adds a single source of truth for dataset staged/coded/blocked readiness and surfaces it through the existing
benchmaxxing datasetscommand.Changes
benchmaxxing/datasets/status.pywith structured dataset readiness metadata.medmcqa.benchmaxxing datasetsto print dataset status columns:Design note
I kept dataset readiness status in a new
benchmaxxing/datasets/status.pymodule instead of adding fields toDatasetSpec. This makes the status source testable and discoverable while avoiding changes to every existing adapter spec or the adapter API.Validation
ruff check .python -m pytest -qResult:
ruff: all checks passedpytest: 569 passed, 6 skipped