From d9c291ed85a8c76c0faa6daa55d6ba09ee98cd37 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Tue, 14 Jul 2026 09:00:35 +0100 Subject: [PATCH] docs: warn search_dict[...] silently drops iterations_per_quick_update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit al_configure_search: SettingsSearch.search_dict is a fixed-key property, so assigning iterations_per_quick_update (or anything else) to it is a silent no-op and the value never reaches the search — the config default (often 1e99, never) wins. Document the correct idiom (pass directly to af.Nautilus, as autolens_workspace does) and the conf.instance workaround for pipeline-wide use. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01HD3ZkpFRydshFLeu2V6xDi --- skills/al_configure_search.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/skills/al_configure_search.md b/skills/al_configure_search.md index 1666014..60b7cf0 100644 --- a/skills/al_configure_search.md +++ b/skills/al_configure_search.md @@ -64,6 +64,16 @@ Knobs to know: and frequent updates would measurably dominate runtime. A common failure is leaving it high on a heavy fit, so the run shows *nothing* to inspect for an hour — avoid that. On HPC/batch runs the same value governs what a `sync pull` surfaces, so pick it before submitting. + - **Set it the right way — directly on the search.** Pass `iterations_per_quick_update=…` + straight to the search constructor, e.g. `af.Nautilus(..., iterations_per_quick_update=…)` + (the idiom used throughout `autolens_workspace`, e.g. `point_source/modeling.py`, + `weak/modeling.py`). Do **not** try to set it via `settings_search.search_dict[...] = …`: + `SettingsSearch.search_dict` is a fixed-key property (`path_prefix`, `unique_tag`, + `number_of_cores`, `session`, `use_jax_vmap`), so assigning a new key to it is a **silent + no-op** — the value never reaches the search and the config default (often `1e99`, i.e. + *never* quick-update) silently wins. To set it globally for a whole pipeline without + editing every search, write it to the live config once after `conf.instance.push(...)`: + `conf.instance["general"]["updates"]["iterations_per_quick_update"] = N`. ## Branch — Dynesty