Releases: PyAutoLabs/PyAutoArray
v2026.5.8.2
⚠️ v2026.5.8.2 is a no-op re-release of v2026.5.8.1 — same code, second release dispatched the same day to validate updated release-pipeline gates. The full set of changes shipped on 2026-05-08 follows.
PyAutoArray v2026.5.8.2
What's New
Breaking Changes
- feat: honor PYAUTO_SMALL_DATASETS in Imaging.from_fits (#301)
-
- New public utility
autoarray.util.dataset_util.cap_array_2d_for_small_datasets(array_2d, pixel_scales)that center-crops a 2D autoarray to (15, 15)/0.6 whenPYAUTO_SMALL_DATASETS=1and the input exceeds the cap. Returns inputs unchanged otherwise.
- New public utility
-
Imaging.from_fitsnow calls this helper fordataandnoise_map. PSF unchanged. Signature, docstring, and default behaviour with the env var unset are unchanged — this is a behaviour change only underPYAUTO_SMALL_DATASETS=1.
-
Bug Fixes
- fix OOB read in psf_precision_value_from causing NaN sparse-CPU log_evidence (#296)
Internal
- refactor: replace os.path with pathlib (#300)
- docs: convert remaining prose .rst to MyST .md (pass 2) (#298)
- Fix subplot_of_mapper crash on interferometer data_subtracted (#297)
- test: remove jax-using unit tests; assertions moved to autolens_workspace_test (#295)
- docs: convert index.rst to MyST .md (#294)
Full changelog: 2026.5.1.4...2026.5.8.2
v2026.5.8.1
PyAutoArray v2026.5.8.1
What's New
Breaking Changes
- feat: honor PYAUTO_SMALL_DATASETS in Imaging.from_fits (#301)
-
- New public utility
autoarray.util.dataset_util.cap_array_2d_for_small_datasets(array_2d, pixel_scales)that center-crops a 2D autoarray to (15, 15)/0.6 whenPYAUTO_SMALL_DATASETS=1and the input exceeds the cap. Returns inputs unchanged otherwise.
- New public utility
-
Imaging.from_fitsnow calls this helper fordataandnoise_map. PSF unchanged. Signature, docstring, and default behaviour with the env var unset are unchanged — this is a behaviour change only underPYAUTO_SMALL_DATASETS=1.
-
Bug Fixes
- fix OOB read in psf_precision_value_from causing NaN sparse-CPU log_evidence (#296)
Internal
- refactor: replace os.path with pathlib (#300)
- docs: convert remaining prose .rst to MyST .md (pass 2) (#298)
- Fix subplot_of_mapper crash on interferometer data_subtracted (#297)
- test: remove jax-using unit tests; assertions moved to autolens_workspace_test (#295)
- docs: convert index.rst to MyST .md (#294)
Full changelog: 2026.5.1.4...2026.5.8.1
v2026.5.1.4
PyAutoArray 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 (#293). 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 autoarray[jax], gated onpython_version >= '3.11'. Plainpip install autoarrayno longer pulls JAX as a transitive dep. AbstractNDArray.__array__now coerces to numpy and accepts numpy 2.0'scopykwarg, fixing interop with newer numpy when JAX isn't installed.
Bug Fixes
- Handle off-centre masks in convolver and blurring grid padding (#274) — convolution no longer drifts the result for masks whose centre isn't aligned with the grid origin
- Fix NaN gradients from
jaxnnlsbackward pass via Jacobi preconditioning (#279) — gradients through the NNLS solver are now numerically stable - Lower
nnls_target_kappadefault to1e-11for stable NNLS gradients (#283) — the previous default could produce diverging Jacobi-preconditioned solves on stiff problems - Align hardcoded
nnls_target_kappafallback with the YAML default (1e-11) (#284) — keeps inline-default and config-default in sync
Internal / Cleanup
- Remove jax-using unit tests; assertions moved to
autolens_workspace_test(#295) — 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)
Full changelog: 2026.4.13.6...2026.5.1.4
v2026.4.13.6
PyAutoArray v2026.4.13.6
What's New
Bug Fixes
- fix: pin autoconf dependency version and update homepage URL (#273)
Full changelog: 2026.4.13.5...2026.4.13.6
v2026.4.13.5
PyAutoArray v2026.4.13.5
What's New
Bug Fixes
- fix: pin autoconf dependency version and update homepage URL (#273)
Full changelog: 2026.4.13.3...2026.4.13.5
v2026.4.13.3
PyAutoArray v2026.4.13.3
What's New
Breaking Changes
- refactor: rename env vars to PYAUTO_* prefix (#265)
- Three env var renames. Hilbert mesh validation now controlled by
PYAUTO_SKIP_CHECKSinstead ofPYAUTOFIT_TEST_MODE. See full details below.
- Three env var renames. Hilbert mesh validation now controlled by
New Features
- Add should_simulate utility for auto-simulation with small datasets (#261)
- feat: add title_prefix support to subplot_imaging_dataset (#260)
- feat: PYAUTO_WORKSPACE_SMALL_DATASETS env var for fast smoke tests (#253)
Bug Fixes
- fix: bump scipy cap to <=1.15.2 (#266)
- fix: add _mappings_sizes_weights_split to InterpolatorRectangular (#262)
Internal
- fix: guard zoom_array against non-autoarray mask objects (#270)
- build: add Python 3.13 to CI matrix (#268)
- build: raise caps on scipy, astropy, scikit-image, scikit-learn (#267)
- Guarantee GaussianKernel regularization matrix is PD (#264)
- refactor: clamp brightest_coordinate_in_region_from to array bounds (#263)
- perf: defer scipy imports to reduce import time (#259)
- perf: skip radial bins computation when PYAUTO_WORKSPACE_SMALL_DATASETS=1 (#258)
- perf: force over_sample_size=2 when PYAUTO_WORKSPACE_SMALL_DATASETS=1 (#257)
- fix: import is_test_mode from autoconf instead of autofit (#256)
- perf: skip savefig rendering in PYAUTO_FAST_PLOTS mode (#255)
- feat: add tight_layout wrapper with PYAUTO_FAST_PLOTS env var (#254)
- perf: speed up unit tests 63% by removing JAX from triangle tests (#252)
- Use centralized is_test_mode() from PyAutoFit (#250)
- Drop Python 3.9-3.11, add 3.13 (#249)
Full changelog: 2026.4.5.3...2026.4.13.3
v2026.4.5.3
PyAutoArray v2026.4.5.3
What's New
New Features
- Make output_format configurable, default to show (#248)
Bug Fixes
- Plot improvements: arcsec tick labels, circular import fix, test imports (#241)
- perform fix by not linking state blurring grid to dataset grid (#221)
- fix rectangular mesh grid plot (#219)
- feature/psf_centering_fix (#216)
- feature/final_border_fix (#212)
Internal
- Drop Python 3.9-3.11, add 3.13 (#249)
- Visualization final: config origin, fits API, output mode (#247)
- Colorbar tick fontsize reduction and scientific notation consistency (#246)
- Plot improvements: DPI config, Delaunay aspect ratio, tick rounding, source vmax (#244)
- Add RGB support to plot_array (#243)
- Plot improvements: line_colors, is_subplot colorbar sizing, inversion panels (#242)
- Plot improvements batch 2 (#240)
- Overhaul 2D plot styling and subplot layout (#239)
- Add subplot_imaging and subplot_imaging_dataset_list standalone plot functions (#238)
- Claude/refactor plotting module s6 zq1 (#236)
- Refactor dataset and operator tests for granularity and clarity (#235)
- Refactor inversion and mapper tests for granularity and clarity (#234)
- Refactor regularization tests for granularity and clarity (#233)
- refactor: split mask tests into granular focused tests (#232)
- refactor: split structures tests into granular focused tests (#231)
- refactor: split fit tests into granular focused tests (#230)
- improve docstrings for autoarray/inversion package and update fit log… (#229)
- Improve docstrings for autoarray/fit package (#228)
- docs: refactor docstrings for autoarray/structures package (#227)
- docs: refactor docstrings for autoarray/mask package (#226)
- docs: refactor and complete docstrings for autoarray/geometry (#225)
- docs: refactor and complete docstrings for autoarray/dataset (#224)
- Add CLAUDE.md documenting decorator system and JAX jit boundary (#223)
- eature/blurring_mask_padding (#222)
- Feature/remove preloads (#220)
- Feature/psf convolution refactor (#218)
- Feature/mesh refactor (#217)
- Feature/matern adaptive (#214)
- feature/formatting (#213)
- Feature/voronoi safe fallback (#211)
- Feature/wcs coordinates (#210)
- Feature/unconvolved images (#209)
- Feature/border relocator via ellipse (#208)
- Feature/linalg mixed precision (#205)
- Feature/fft jax imaging (#204)
- feature/remove mapper valued (#203)
- Feature/jax w tilde preload (#202)
- Feature/interferometer (#201)
- feature/matern_jax (#200)
- Feature/delaunay primitive (#199)
- Feature/image mesh border (#198)
- Feature/image mesh jax (#197)
- Feature/numba speed up (#196)
- Feature/w tilde via dataset (#195)
Full changelog: 2026.4.5.3...2026.4.5.3