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
18 changes: 13 additions & 5 deletions autoarray/util/dataset_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,19 @@
SMALL_DATASETS_PIXEL_SCALES = 0.6

# The FITS header card ``autonerves.fitsable.stamp_small_datasets_regime`` writes
# on every array the stack outputs. Deliberately duplicated here rather than
# imported: ``pyproject.toml`` floors autonerves at a release that predates the
# stamp, so an import would hard-fail against a legitimately-resolved older
# autonerves. Reading the card by name degrades to "absent" instead, which is
# exactly the fallback path below. Keep in sync with PyAutoNerves#153.
# on every array the stack outputs. Still deliberately duplicated here rather
# than imported, though the original reason has expired: the floor in
# ``pyproject.toml`` now names a stamped release, so importing the constant
# would resolve. The reason it stays a literal is what the floor does NOT
# cover. A floor constrains dependency *resolution* only; an editable checkout,
# a ``pip install --no-deps``, or a hand-built virtualenv can still put a
# pre-stamp autonerves on the path. Under this literal such an autonerves
# yields "card absent" and the reader falls through to the shape heuristic
# below — the safe direction, and the same path every pre-stamp dataset on disk
# already takes. Under an import it would be an ``ImportError`` at module load.
# Trading a silent-safe degradation for a hard failure to delete one string is
# the wrong way round, so the duplication is kept on purpose.
# Keep in sync with PyAutoNerves#153.
SMALL_DATASETS_HEADER_KEY = "SMALLDAT"


Expand Down
20 changes: 16 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,22 @@ classifiers = [
]
keywords = ["cli"]
dependencies = [
# Floor, not a pin (PyAutoLens#687) — bump to the first release with JAX
# in autonerves' base dependencies once it exists (PyAutoLens#702), so
# backtracking cannot pair this autoarray with a jax-optional autonerves.
"autonerves>=2026.8.22.1",
# Floor, not a pin (PyAutoLens#687). Two independent reasons hold it up;
# neither may be dropped without checking the other.
#
# 1. JAX in base dependencies (PyAutoLens#702) — the floor must name a
# release carrying `jax`/`jaxlib` in autonerves' *base* Requires-Dist, so
# backtracking cannot pair this autoarray with a jax-optional autonerves.
# Satisfied since 2026.8.22.1; every later release keeps them there.
# 2. The SMALLDAT regime stamp (PyAutoNerves#153/#154) — `should_simulate`
# prefers the header card that autonerves' writer stamps, and 2026.8.23.1
# is the FIRST release whose `fitsable.stamp_small_datasets_regime` emits
# it. Against anything older the card is simply absent, the read side
# degrades to its shape heuristic, and capped *interferometer* datasets —
# shape-identical to full-resolution ones — go undetected. That is the
# case the stamp exists for, so the floor is what makes it reachable for
# an installed autoarray rather than a checkout.
"autonerves>=2026.8.23.1",
"astropy>=5.0",
"decorator>=4.0.0",
"dill>=0.3.1.1",
Expand Down
Binary file not shown.
Loading