maint: design lock-in + results/dashboard groundwork (polish phase 1)#53
Merged
Conversation
- results live wholly in-repo: sweep.py/aggregate.py default --output-root is now results/runtime/ (workspace_developer tree stays as history) - sweep.py: sys.executable default (no machine-specific path), imaging/mge joins CELLS, --sparse passthrough for the w-tilde rows - build_readme.py retargeted from the retired likelihood/ layout to the real results sections (breakdown/runtime/simulators/searches), with comparison.json support and a named-baseline column hook - dashboard sentinels added to README + runtime/breakdown/searches READMEs - PreOptimizationTimes baseline convention defined (results/notes/design_lock_in.md); results/README.md rewritten - stale docs fixed (retired likelihood/ refs, z_projects HPC refs, PyAutoPrompt roadmap ref); quick_update/hpc/scripts READMEs added Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CI installs unpinned latest ruff, so the next PR faces 0.15.x: 204 pre-existing violations repo-wide. Applied ruff check --fix (import sorting, PEP 604 annotations, f-string placeholders) + ruff format (44 files); removed a dead AnalysisImaging construction in latent/effective_einstein_radius.py; default-bound the loop variable in vram/probe.py's tree_map lambda (B023 false positive — invoked synchronously). B905/B007 added to the ruff.toml ignore list with rationale (equal-length zips and warm-up loops are the dominant timing- script patterns). Verified: ruff check + format --check clean, build_readme --check idempotent, compileall, 8/8 unit tests, smoke imports (AUTOLENS_PROFILING_SMOKE=1) on one script per area. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ding) The HPC submit scripts pass no --output-dir, so per-cell defaults decide where A100 results land — and those still pointed at the retired results/likelihood/<class>/ section (latent/ still at the old workspace_developer root). Retargeted all likelihood_runtime per-cell defaults to results/runtime/<class>/<model>/ (matching the sweep layout) and latent sweep/aggregate to results/latent/. aggregate.py now filters to config-shaped stems so versioned standalone summaries sharing a cell dir cannot corrupt comparison.json (covered by a functional test run). Co-Authored-By: Claude Fable 5 <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.
Summary
Phase 1 of the pre-PreOptimizationTimes polish (closes the groundwork half of #52): one final holistic design review before the baseline profiling campaign, locking the core design in for extension and putting the results-presentation story in place so campaign results land as browsable
.md/.jsonon GitHub. Decisions recorded in-repo atresults/notes/design_lock_in.md. Three commits: the design/docs work, a repo-wide ruff 0.15 cleanup (CI installs unpinned ruff — the next PR faces 0.15.x regardless), and a review-leg fix.Scripts Changed
likelihood_runtime/sweep.py— default--output-rootnow in-reporesults/runtime/(wasautolens_workspace_developer/jax_profiling/results/jit);_DEFAULT_PYTHON→sys.executable(was a hard-coded venv path);imaging/mgeadded toCELLS; new--sparsepassthrough (w-tilde rows,_sparse-suffixed filenames/logs)likelihood_runtime/aggregate.py— same in-repo default root; discovery and aggregation now filter to config-shaped stems (_is_config_stem) so versioned standalone summaries sharing a cell dir cannot corruptcomparison.json;_sparserows order after canonical configslikelihood_runtime/<class>/<model>.py(all 9 per-cell scripts) — standalone/HPC default output dir retargeted from the retiredresults/likelihood/<class>/toresults/runtime/<class>/<model>/, so SLURM jobs (which pass no--output-dir) land exactly where a local sweep writeslatent/sweep.py,latent/aggregate.py— default output root retargeted from workspace_developer to in-reporesults/latent/scripts/build_readme.py— rewritten for the post-split layout: scansresults/{breakdown,simulators,searches}versioned artifacts +results/runtime/**/comparison.json; renders headline dashboard (top-level README), per-package tables, and a named-baseline column hook readingresults/baselines/<Name>/vram/probe.py— loop variable default-bound in thetree_maplambda (B023);latent/imaging/effective_einstein_radius.py— deadAnalysisImagingconstruction removed_profile_cli.py, remaining*.py— docstring fixes + mechanical ruff 0.15 auto-fixes/format (import sorting, PEP 604 annotations);ruff.tomlgainsB905/B007ignores with rationaleresults/README.mdrewritten around the two artifact shapes + baselines convention; newquick_update/,hpc/,scripts/READMEs; stalelikelihood/,z_projects/,PyAutoPromptreferences fixed inAGENTS.md/READMEs; roadmap updatedTest Plan
ruff check .+ruff format --check .clean (ruff 0.15.20, matching CI's unpinned install)python scripts/build_readme.py --checkidempotent (CI gate); dashboard renders the existing v2026.5.29.4 breakdown artifactspytest test/— 8/8AUTOLENS_PROFILING_SMOKE=1import gate on one script per area (runtime, breakdown, latent, vram, simulators)sweep.py --dry-run(incl.--sparse) targetsresults/runtime/<class>/<model>/with correct flagsaggregate.pyon a synthetic cell dir mixing config JSONs + a versioned summary →comparison.jsoncontains only config rowsValidation checklist (--auto run — plan was not pre-approved interactively)
🤖 Generated with Claude Code