Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/skills/generate_and_merge/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Build notebooks for the autofit_workspace, then open and merge a PR into `main`,

Run from the workspace root:
```bash
PYTHONPATH=../PyAutoBuild/autobuild python3 ../PyAutoBuild/autobuild/generate.py autofit
PYTHONPATH=../PyAutoHands/autobuild python3 ../PyAutoHands/autobuild/generate.py autofit
```
This regenerates all notebooks in `notebooks/` from `scripts/`. It may take a few minutes.
It also regenerates the LLM-facing catalogue (`llms-full.txt` and `workspace_index.json`)
Expand Down
4 changes: 2 additions & 2 deletions .github/scripts/run_smoke.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

Notebook execution uses `jupyter nbconvert --to notebook --execute`.
On failure the runner regenerates the single failing notebook from its
source `.py` script via PyAutoBuild's `py_to_notebook` and retries
source `.py` script via PyAutoHands's `py_to_notebook` and retries
once — this catches stale notebooks where the script has moved on but
the on-disk `.ipynb` wasn't refreshed by `/pre_build`'s
`generate.py`. Whole-workspace regeneration stays the responsibility
Expand Down Expand Up @@ -131,7 +131,7 @@ def regenerate_notebook(nb_rel: str) -> Path:
The regenerated copy lives in /tmp; the on-disk `notebooks/` tree is
never modified, so a smoke run leaves the worktree clean.
"""
from build_util import py_to_notebook # PyAutoBuild/autobuild on PYTHONPATH
from build_util import py_to_notebook # PyAutoHands/autobuild on PYTHONPATH

script_path = SCRIPTS_DIR / Path(nb_rel).with_suffix(".py")
if not script_path.exists():
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/navigator_check.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: Navigator Check

# Thin caller for PyAutoBuild's reusable navigator-catalogue check. The check
# Thin caller for PyAutoHands's reusable navigator-catalogue check. The check
# logic (path/banner lint + catalogue staleness) and its entrypoints live in
# PyAutoBuild/autobuild; this workspace only declares which generator project to
# run. See PyAutoLabs/PyAutoBuild/.github/workflows/navigator_check.yml.
# PyAutoHands/autobuild; this workspace only declares which generator project to
# run. See PyAutoLabs/PyAutoHands/.github/workflows/navigator_check.yml.

on: [push, pull_request]

Expand All @@ -12,6 +12,6 @@ permissions:

jobs:
navigator:
uses: PyAutoLabs/PyAutoBuild/.github/workflows/navigator_check.yml@main
uses: PyAutoLabs/PyAutoHands/.github/workflows/navigator_check.yml@main
with:
project: autofit
14 changes: 7 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ inspect results), read `scripts/overview/overview_1_the_basics.py` — it is kep
## Testing

On CI, every PR is gated by three workflows on Python **3.12 and 3.13**: `smoke_tests.yml` (the
smoke runner below — the definition of green), `navigator_check.yml` (PyAutoBuild's reusable
smoke runner below — the definition of green), `navigator_check.yml` (PyAutoHands's reusable
navigator-catalogue check; see *Notebooks vs Scripts*), and `url_check.yml` (link checking). The
smoke and navigator jobs check out **PyAutoBuild** as a sibling and run the PyAuto* libraries from
smoke and navigator jobs check out **PyAutoHands** as a sibling and run the PyAuto* libraries from
the **same-named branch** of each source repo, so a workspace PR is validated against matching
library branches.

Expand Down Expand Up @@ -94,13 +94,13 @@ and markdown cells.

### Generating notebooks

After updating scripts, regenerate the notebooks using the PyAutoBuild tool (run from the workspace
After updating scripts, regenerate the notebooks using the PyAutoHands tool (run from the workspace
root):

```bash
pip install ipynb-py-convert
git clone https://github.com/PyAutoLabs/PyAutoBuild.git ../PyAutoBuild
PYTHONPATH=../PyAutoBuild/autobuild python3 ../PyAutoBuild/autobuild/generate.py autofit
git clone https://github.com/PyAutoLabs/PyAutoHands.git ../PyAutoHands
PYTHONPATH=../PyAutoHands/autobuild python3 ../PyAutoHands/autobuild/generate.py autofit
```

Commit the regenerated notebooks alongside the script changes. The `/generate_and_merge` skill
Expand All @@ -126,15 +126,15 @@ PyAutoFit sits near the base of the PyAuto stack (all on the `PyAutoLabs` GitHub

- https://github.com/PyAutoLabs/PyAutoConf — configuration handling (the `autoconf` dependency).
- https://github.com/PyAutoLabs/PyAutoFit — this library: model composition + non-linear search.
- https://github.com/PyAutoLabs/PyAutoBuild — notebook generation + CI.
- https://github.com/PyAutoLabs/PyAutoHands — notebook generation + CI.
- https://github.com/PyAutoLabs/PyAutoGalaxy — downstream science library built **on** PyAutoFit.
- https://github.com/PyAutoLabs/PyAutoLens — downstream science library built **on** PyAutoFit.
- https://github.com/PyAutoLabs/HowToFit — tutorial lecture series that teaches statistical
model-fitting and Bayesian inference with PyAutoFit from first principles; the starting point for
beginners new to the framework.

For local development these are typically cloned as siblings of this repo (`../PyAutoFit`,
`../PyAutoConf`, `../PyAutoBuild`, …).
`../PyAutoConf`, `../PyAutoHands`, …).

## Task Workflows

Expand Down
4 changes: 2 additions & 2 deletions config/build/copy_files.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Files copied as-is into notebooks/ instead of being converted from
# scripts/. Used by PyAutoBuild's generate.py during the pre-build step.
# scripts/. Used by PyAutoHands's generate.py during the pre-build step.
#
# Format: flat list of script paths relative to the workspace root.
# Patterns matched by suffix — any file path ending with one of these
# entries is treated as copy-only.
#
# This file overrides PyAutoBuild/autobuild/config/copy_files.yaml for
# This file overrides PyAutoHands/autobuild/config/copy_files.yaml for
# this workspace. Add or remove entries here, not there.

- howtofit/chapter_1_introduction/gaussian.py
Expand Down
2 changes: 1 addition & 1 deletion config/build/markdown_examples.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Curated examples rendered to executed markdown pages (markdown/) with their
# real output images, so they can be read on GitHub. Built manually by
# PyAutoBuild's generate_markdown.py — see that module's docstring for the
# PyAutoHands's generate_markdown.py — see that module's docstring for the
# rules (never TEST_MODE; features/ scripts never rendered; list order is
# execution order and index order).
# autofit has no root start_here.py; the overview scripts are the flagships
Expand Down
4 changes: 2 additions & 2 deletions config/build/visualise_notebooks.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Notebook stems that should run when PyAutoBuild's generate / run pipeline
# Notebook stems that should run when PyAutoHands's generate / run pipeline
# is invoked with --visualise. Used to refresh notebook output cells in main.
#
# Format: flat list of notebook stems (no extension, no path).
# An empty list means no notebooks need re-visualisation in this workspace.
#
# This file overrides PyAutoBuild/autobuild/config/visualise_notebooks.yaml
# This file overrides PyAutoHands/autobuild/config/visualise_notebooks.yaml
# for this workspace. Add or remove entries here, not there.

[]
2 changes: 1 addition & 1 deletion llms-full.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
AUTO-GENERATED by PyAutoBuild — do not edit by hand; regenerate with generate.py.
AUTO-GENERATED by PyAutoHands — do not edit by hand; regenerate with generate.py.

# PyAutoFit Workspace — Full Catalogue

Expand Down
2 changes: 1 addition & 1 deletion markdown/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ Every page below is the corresponding example script **fully executed**, rendere
- [Overview: Scientific Workflow](overview/overview_2_scientific_workflow.md) — from `scripts/overview/overview_2_scientific_workflow.py`
- [Overview: Statistical Methods](overview/overview_3_statistical_methods.md) — from `scripts/overview/overview_3_statistical_methods.py`

These pages are regenerated manually by PyAutoBuild's `generate_markdown.py` when a curated script changes.
These pages are regenerated manually by PyAutoHands's `generate_markdown.py` when a curated script changes.
Loading