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/hooks/validate_pyauto_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
# Mirrors ALIAS_TO_MODULE in autoassistant/audit_skill_apis.py.
_ALIASES = (
"aplt",
"autoconf",
"autonerves",
"autofit",
"af",
)
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wiki-currency.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
python -m pip install --upgrade pip
VER="${{ inputs.stack_version }}"
if [ -n "$VER" ]; then
echo "Installing autofit==$VER (pulls the pinned autoconf)."
echo "Installing autofit==$VER (pulls the pinned autonerves)."
pip install "autofit==$VER"
else
echo "Installing the latest released autofit."
Expand All @@ -85,7 +85,7 @@ jobs:
- name: Clone cited source trees (citation ground truth)
run: |
mkdir -p sources
for repo in PyAutoConf PyAutoFit; do
for repo in PyAutoNerves PyAutoFit; do
git clone --quiet --depth 1 "https://github.com/PyAutoLabs/$repo" "sources/$repo"
done
git clone --quiet --depth 1 --filter=blob:none --sparse \
Expand Down
4 changes: 2 additions & 2 deletions activate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ elif [ -n "${PYAUTO_HPC_BASE:-}" ] && [ -f "$PYAUTO_HPC_BASE/PyAuto/bin/activate
BASE="$PYAUTO_HPC_BASE"
source "$BASE/PyAuto/bin/activate"
export PYTHONPATH=$BASE:\
$BASE/PyAutoConf:\
$BASE/PyAutoNerves:\
$BASE/PyAutoFit
else
echo "No local .venv found (set PYAUTO_HPC_BASE for a shared/HPC PyAuto checkout)." >&2
Expand All @@ -30,5 +30,5 @@ fi
#
# SRC=~/Code/PyAutoLabs
# export PYTHONPATH=$SRC:\
# $SRC/PyAutoConf:\
# $SRC/PyAutoNerves:\
# $SRC/PyAutoFit
16 changes: 8 additions & 8 deletions autoassistant/audit_skill_apis.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@

try:
import yaml
except ImportError: # pragma: no cover - yaml ships with the stack (autoconf dep)
except ImportError: # pragma: no cover - yaml ships with the stack (autonerves dep)
yaml = None

# ---------------------------------------------------------------------------
Expand All @@ -59,12 +59,12 @@
# `__version__`; `autofit.plot` is hashed too (it is where the plot API lives)
# but inherits the autofit version.
BASELINE_MODULES: tuple[str, ...] = (
"autoconf",
"autonerves",
"autofit",
"autofit.plot",
)
VERSIONED_MODULES: tuple[str, ...] = (
"autoconf",
"autonerves",
"autofit",
)

Expand All @@ -79,7 +79,7 @@
ALIAS_TO_MODULE: dict[str, str] = {
"af": "autofit",
"aplt": "autofit.plot",
"autoconf": "autoconf",
"autonerves": "autonerves",
"autofit": "autofit",
}

Expand Down Expand Up @@ -376,7 +376,7 @@ def _cross_module_candidates(leaf: str) -> list[str]:
if leaf in _cross_cache:
return _cross_cache[leaf]
hits: list[str] = []
for mod_name in ("autoconf", "autofit"):
for mod_name in ("autonerves", "autofit"):
root = _module_cache.get(mod_name)
if root is None:
try:
Expand Down Expand Up @@ -582,7 +582,7 @@ def render_report(
# ---------------------------------------------------------------------------
def gather_versions() -> dict[str, str]:
out: dict[str, str] = {}
for name in ("autoconf", "autofit"):
for name in ("autonerves", "autofit"):
try:
mod = importlib.import_module(name)
except Exception as e: # noqa: BLE001
Expand Down Expand Up @@ -695,7 +695,7 @@ def render_installation_check(check: InstallationCheck) -> str:
lines.append(f" install type: {check.install_kind}")
if check.missing:
lines.append(f" missing from this interpreter: {', '.join(check.missing)}")
# Group identical errors: with e.g. a workspace-version mismatch, autoconf
# Group identical errors: with e.g. a workspace-version mismatch, autonerves
# and autofit fail with the same multi-paragraph message β€” print it once,
# naming every module it applies to.
grouped: dict[str, list[str]] = {}
Expand Down Expand Up @@ -890,7 +890,7 @@ def check_version(root: Path) -> int:
# `main`-pinned pages that predate the discipline.
# ---------------------------------------------------------------------------
PROJECT_IMPORT: dict[str, str] = {
"PyAutoConf": "autoconf",
"PyAutoNerves": "autonerves",
"PyAutoFit": "autofit",
}
_SHA_RE = re.compile(r"[0-9a-f]{7,40}\Z")
Expand Down
2 changes: 1 addition & 1 deletion autoassistant/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
RUNS_DIRNAME = "runs"
BENCHMARKS_DIRNAME = "benchmarks"

STACK_PACKAGES = ("autofit", "autoconf")
STACK_PACKAGES = ("autofit", "autonerves")

FRONTMATTER = re.compile(r"\A---\n(.*?)\n---\n", re.DOTALL)
RUBRIC_ROW = re.compile(r"^\|\s*(M\d+|J\d+)\s*\|\s*(.+?)\s*\|\s*(\d+)\s*\|\s*$")
Expand Down
2 changes: 1 addition & 1 deletion autoassistant/mcp/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import sys
from pathlib import Path

from autoconf.dictable import to_dict
from autonerves.dictable import to_dict

import autofit as af

Expand Down
2 changes: 1 addition & 1 deletion autoassistant/refresh_api_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@


MODULES = (
("autoconf", "autoconf"),
("autonerves", "autonerves"),
("autofit", "autofit"),
)

Expand Down
8 changes: 4 additions & 4 deletions autoassistant/tests/test_api_gate.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

GOOD = "import autofit.plot as aplt; aplt.corner_cornerpy(samples=samples)"
GOOD_SUBMODULE = "import autofit.jax.pytrees as pytrees"
GOOD_AUTOCONF_SUBMODULE = "import autoconf.dictable"
GOOD_AUTOCONF_SUBMODULE = "import autonerves.dictable"
STALE_MODEL = "import autofit as af; af.PriorModel(SomeClass)"
STALE_NEST = "from autofit.non_linear.nest.multi_nest import MultiNest"

Expand Down Expand Up @@ -91,7 +91,7 @@ def test_validator_passes_current_submodule_import():
assert _run_validator("--code", GOOD_SUBMODULE).returncode == 0


def test_validator_passes_autoconf_submodule_import():
def test_validator_passes_autonerves_submodule_import():
assert _run_validator("--code", GOOD_AUTOCONF_SUBMODULE).returncode == 0


Expand Down Expand Up @@ -275,14 +275,14 @@ def test_render_installation_check_groups_identical_errors():
check = mod.InstallationCheck(
status="import_failed", python="py", prefix="env",
versions={}, locations={}, missing=[],
errors={name: "Boom: identical wall" for name in ("autoconf", "autofit")},
errors={name: "Boom: identical wall" for name in ("autonerves", "autofit")},
install_kind="unknown", cache_defaults={},
)

text = mod.render_installation_check(check)

assert text.count("Boom: identical wall") == 1
assert "autoconf, autofit import failed" in text
assert "autonerves, autofit import failed" in text


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion autoassistant/tests/test_install_preflight.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def test_install_preflight_distinguishes_absent_stack():


def test_install_preflight_distinguishes_broken_import(tmp_path):
for package in ("autoconf", "autofit"):
for package in ("autonerves", "autofit"):
package_path = tmp_path / package
package_path.mkdir()
body = (
Expand Down
2 changes: 1 addition & 1 deletion autoassistant/tests/test_mcp_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from PIL import Image

import autofit as af
from autoconf import conf
from autonerves import conf

from autoassistant.mcp import tools

Expand Down
4 changes: 2 additions & 2 deletions hpc/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@

Anchor config and output to the project root (the directory holding this script's
parent), so the script behaves identically from a local shell and from a SLURM batch
working directory (`PyAutoConf:autoconf/conf.py`).
working directory (`PyAutoNerves:autonerves/conf.py`).
"""
PROJECT_PATH = Path(__file__).resolve().parents[1]

from autoconf import conf
from autonerves import conf

conf.instance.push(
new_path=str(PROJECT_PATH / "config"),
Expand Down
2 changes: 1 addition & 1 deletion skills/_bootstrap_skill.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ touch. Common patterns:

- Model composition, priors, searches, samples, aggregator, graphical models β†’
`PyAutoFit`.
- Configuration option β†’ `PyAutoConf` + the config you're touching.
- Configuration option β†’ `PyAutoNerves` + the config you're touching.
- Construction idioms and worked examples β†’ `autofit_workspace` (read-only reference).

If the new skill needs a repo not in `sources.yaml`, add it there first (with a `name`,
Expand Down
2 changes: 1 addition & 1 deletion skills/af_adapt_to_domain.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ later.
Run [`af_compose_model`](./af_compose_model.md) for their standard model(s). If a
parametrisation is truly standard for them, offer to write its priors into
`config/priors/` as project defaults (see
[[../wiki/core/stack/autoconf]]) and to serialise the composed model to JSON β€” both make
[[../wiki/core/stack/autonerves]]) and to serialise the composed model to JSON β€” both make
"the usual model" a one-liner in every future script.

## Combine β€” proving and closing the loop
Expand Down
8 changes: 4 additions & 4 deletions skills/af_audit_skill_apis.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ one with the PyAuto\* stack β€” source the project's `activate.sh` first.

```bash
source activate.sh
python -c "import autoconf, autofit; \
print({m.__name__: getattr(m, '__version__', '?') for m in [autoconf, autofit]})"
python -c "import autonerves, autofit; \
print({m.__name__: getattr(m, '__version__', '?') for m in [autonerves, autofit]})"
```

If those imports fail, stop and route the user to
Expand Down Expand Up @@ -226,7 +226,7 @@ A complete audit may surface ten or more misses. Don't try to fix all of them in
push. Ask the user how they want to slice the work:

- *"Fix the skill that triggered this audit first, then sweep the rest?"*
- *"Group fixes by library β€” the autoconf drift in one pass, the PyAutoFit drift in
- *"Group fixes by library β€” the autonerves drift in one pass, the PyAutoFit drift in
another?"*
- *"One file per commit, or batch?"*

Expand Down Expand Up @@ -323,7 +323,7 @@ complete.
## Agent procedural checklist

1. Confirm scope (skills / wiki / scripts / all) and whether to apply fixes now.
2. `source activate.sh`; verify autoconf + autofit import.
2. `source activate.sh`; verify autonerves + autofit import.
3. `python autoassistant/audit_skill_apis.py --check-version` β€” is the installed stack
still on the pinned baseline? If it drifted, that's likely *why* you're here.
4. `python autoassistant/audit_skill_apis.py --scope <scope>`.
Expand Down
2 changes: 1 addition & 1 deletion skills/af_configure_search.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ telling the user before they wonder why a second run finishes instantly.

Per-sampler defaults live in `config/non_linear/` β€” a project can retune a sampler
globally there instead of repeating kwargs in every script
(`PyAutoConf:autoconf/conf.py`).
(`PyAutoNerves:autonerves/conf.py`).

## Combine

Expand Down
6 changes: 3 additions & 3 deletions skills/af_refresh_api_docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ Start from an environment where the PyAuto* stack imports cleanly:

```bash
source activate.sh
python -c "import autoconf, autofit; \
print({m.__name__: getattr(m, '__version__', '?') for m in [autoconf, autofit]})"
python -c "import autonerves, autofit; \
print({m.__name__: getattr(m, '__version__', '?') for m in [autonerves, autofit]})"
```

If those imports fail, stop and route the user to
Expand Down Expand Up @@ -152,7 +152,7 @@ Then commit on the cadence they chose.
## Agent procedural checklist

1. Confirm scope, reference point, and whether this is report-only or fix-and-commit.
2. `source activate.sh`; verify autoconf + autofit import.
2. `source activate.sh`; verify autonerves + autofit import.
3. Run `python autoassistant/refresh_api_docs.py --scope <scope>` to do preflight and launch the audit.
4. Read the audit report and fix symbol drift first.
5. For wiki pages in scope, diff each page's pinned sources against the target repo HEAD and rewrite only changed sections.
Expand Down
16 changes: 8 additions & 8 deletions skills/af_setup_environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Detect, install, and configure a Python environment for the PyAutoF

# Setting up an environment for the PyAuto\* stack

This skill installs the libraries the workspace targets β€” PyAutoConf and PyAutoFit β€”
This skill installs the libraries the workspace targets β€” PyAutoNerves and PyAutoFit β€”
and prepares the sandbox so the rest of the skills will run. The user picks one of two
install modes only if the active environment is not already usable: pip (fastest path to
"import autofit works") or editable-clone (source-level access, slower but lets you read
Expand Down Expand Up @@ -57,7 +57,7 @@ For background on what each library does, point at `wiki/core/stack/overview.md`

## Branch β€” Pip install

The simplest path. PyAutoFit declares autoconf as a transitive dep, so a single
The simplest path. PyAutoFit declares autonerves as a transitive dep, so a single
`pip install` pulls everything in.

```bash
Expand All @@ -79,7 +79,7 @@ protocol SDK (assistant-environment only β€” never a library requirement).
Verify:

```bash
python -c "import autofit, autoconf; print(autofit.__version__)"
python -c "import autofit, autonerves; print(autofit.__version__)"
```

If that prints a version (no traceback), the install is good.
Expand All @@ -96,7 +96,7 @@ mkdir -p sources && cd sources

# Order matters β€” install from the bottom of the dependency chain up.
# URLs come from ../sources.yaml.
git clone https://github.com/PyAutoLabs/PyAutoConf.git
git clone https://github.com/PyAutoLabs/PyAutoNerves.git
git clone https://github.com/PyAutoLabs/PyAutoFit.git

cd ..
Expand All @@ -105,7 +105,7 @@ python3.11 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip

for repo in PyAutoConf PyAutoFit; do
for repo in PyAutoNerves PyAutoFit; do
pip install -e "sources/$repo"
done
```
Expand All @@ -117,7 +117,7 @@ than hand-editing this skill.
Verify the same way as for pip:

```bash
python -c "import autofit, autoconf; print(autofit.__version__)"
python -c "import autofit, autonerves; print(autofit.__version__)"
```

## Sandbox / restricted-filesystem environments
Expand All @@ -139,10 +139,10 @@ real inference.
Save this to `scripts/verify_environment.py` and run it:

```python
import autoconf
import autonerves
import autofit as af

print("autoconf :", autoconf.__version__)
print("autonerves :", autonerves.__version__)
print("autofit :", af.__version__)

# A minimal model composition β€” proves the inference stack is wired up.
Expand Down
2 changes: 1 addition & 1 deletion skills/af_update_wiki.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dumps go in the libraries' own docs/ folders β€” that's not what this wiki is fo

Before starting, confirm with the user:

- Which source repos to update against β€” both (PyAutoConf + PyAutoFit), or one?
- Which source repos to update against β€” both (PyAutoNerves + PyAutoFit), or one?
- Whether to update against `main` of each repo, or a tagged release.
- Whether to commit changes incrementally per-page or in one batch at the end.

Expand Down
2 changes: 1 addition & 1 deletion skills/start-new-project.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ reproducible-science subset; generate the thin assistant layer; refer back for e
else.

**Copy from the assistant into the project** (the science needs these to run):
- `config/` (PyAutoConf YAML β€” search defaults, priors, output policy)
- `config/` (PyAutoNerves YAML β€” search defaults, priors, output policy)
- `activate.sh` (sourced locally and by HPC batch scripts)
- `scripts/` (the chosen analysis scripts, or empty)
- datasets (Step 3) into `data/<sample>/...`
Expand Down
8 changes: 4 additions & 4 deletions sources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
# the reference branch.

projects:
- name: PyAutoConf
import: autoconf
- name: PyAutoNerves
import: autonerves
role: config # YAML config loading, prior resolution
git: https://github.com/PyAutoLabs/PyAutoConf
git: https://github.com/PyAutoLabs/PyAutoNerves

- name: PyAutoFit
import: autofit
Expand All @@ -37,5 +37,5 @@ projects:
# Dependency chain (top-to-bottom). Skills target the top; lower layers
# surface in the wiki when the user needs to understand them.
dependency_chain:
- PyAutoConf
- PyAutoNerves
- PyAutoFit
2 changes: 1 addition & 1 deletion wiki/core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ the user's domain papers and a per-clone journal respectively (see

- [`index.md`](./index.md) β€” top-level map; the entry point for an agent or human
reader.
- `stack/` β€” one page per source library (`autoconf`, `autofit`), plus an overview of
- `stack/` β€” one page per source library (`autonerves`, `autofit`), plus an overview of
how they fit together.
- `concepts/` β€” statistics + framework explanations: priors, model composition,
searches, samples, graphical models, evidence.
Expand Down
Loading
Loading