PyAutoLens v2026.5.1.4
Highlights
Python 3.9–3.13 supported, 3.12 / 3.13 recommended
This release expands supported Python versions to 3.9 through 3.13 (#486). 3.12 and 3.13 are first-class recommended; 3.9, 3.10, 3.11 are supported but emit a loud (bypassable) banner on import. Silence the banner via version.python_version_check: False in your workspace's config/general.yaml. Python 3.14 is not yet supported.
Key impacts for users:
requires-python = ">=3.9"inpyproject.toml(lower floor than before)- Classifiers now cover 3.9, 3.10, 3.11, 3.12, 3.13
- JAX is now an optional extra:
pip install autolens[jax], gated onpython_version >= '3.11'. Plainpip install autolensno longer pulls JAX as a transitive dep.
HowToLens moved to its own repo
The HowToLens lecture series now lives in its own repository at PyAutoLabs/HowToLens (#468). Existing URLs/prose in the library and workspace pointing at the previous location have been updated. Clone the new repo to follow the tutorial chapters.
Performance
- Short-circuit
set_snr_of_snr_light_profileswhen no SNR profiles are present (#471) — eliminates a redundant traversal in models that don't use SNR-tuned profiles
Internal / Cleanup
- Remove unused
pyprojrootimport (#485) - Add mask padding likelihood sanity check to test suite (#436)
- Clean up jax false positives in
test_autolens/(#488) - Move sparse-operator parity check to
autolens_workspace_test(#489) — keeps the library's unit suite numpy-only
Upstream Changes
PyAutoConf
- Support Python 3.9–3.13, first-class 3.12/3.13 (PyAutoConf#102)
- Soften Python version check with
general.yamlbypass (PyAutoConf#96)
PyAutoArray
- Support Python 3.9–3.13 (PyAutoArray#293)
- Handle off-centre masks in convolver and blurring grid padding (PyAutoArray#274)
- Fix NaN gradients from
jaxnnlsbackward pass via Jacobi preconditioning (PyAutoArray#279) - Lower
nnls_target_kappadefault to1e-11for stable NNLS gradients (PyAutoArray#283, #284)
PyAutoFit
- Support Python 3.9–3.13 (PyAutoFit#1244)
- JAX-jitted likelihoods in Dynesty via
use_jax_jit(PyAutoFit#1243) - Skip
FitExceptionsamples incompute_latent_samples(PyAutoFit#1233)
PyAutoGalaxy
- Support Python 3.9–3.13 (PyAutoGalaxy#382)
- Mark
pytree_tokenas ephemeral in light/linear profiles (PyAutoGalaxy#374) - xp-gate
jax.scipy.special.factorialinshapelets/exponential.py(PyAutoGalaxy#385)
Full changelog: 2026.4.13.6...2026.5.1.4