docs: drop the defunct pynufft and pylops from the source-install requirements - #107
Conversation
The install doc told users to `pip install pynufft` "for unit tests to pass". pynufft is no longer a dependency of any PyAuto library (PyAutoArray#475 deleted TransformerNUFFTPyNUFFT and dropped pynufft from both `optional` and `dev`), and PyAutoCTI's suite does not need it. Verified rather than assumed: - .github/workflows/main.yml calls PyAutoHeart's reusable lib-tests.yml, which installs ./PyAutoCTI[optional] plus the Nerves/Fit/Array chain and never installs pynufft in either leg. - pyproject.toml's `optional` extra is ["numba"] — pynufft is not in it. - The latest main run of that workflow is green on every leg: unittest on Python 3.12 and 3.13, plus the unittest-nojax leg. - A full-tree grep finds pynufft only in paper/paper.bib and files/citations.tex (published-record material, deliberately out of scope) and in this line — no import, no test, no config. Phase 3 of 3 of the pynufft-removal residue sweep (PyAutoHands#258). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7kFdoYcD6wnTifNXV5T98
|
CI is red on all three legs (3.12, 3.13, no-jax), and it is not this PR: the diff is a single deleted line in What is actually failing
The guard is doing its job — it exposed an assertion that was passing vacuously: extract = ac.Extract2DSerialEPER(region_list=[(0, 3, 1, 4), (0, 3, 5, 8)])
array_2d_list = extract.array_2d_list_from(
array=serial_array, settings=ac.SettingsExtract(pixels=(2, 3))
)
assert (array_2d_list[1] == np.array([[10.0], [10.0], [10.0]])).all()
Proposed patch (not in this PR — it is unrelated and would widen a docs change)Either:
(2) is a behaviour decision about what an out-of-range Filed in PyAutoMind as The docs change here stands on its own — and CTI's suite passing without Generated by Claude Code |
Removes the whole "For unit tests to pass you will also need the following optional requirements" stanza from the Building-Only-PyAutoCTI section: with pynufft gone in the previous commit, `pip install pylops==1.11.1` was the only line left, and pylops is defunct. Same evidence as for pynufft: nothing in this repo imports or references pylops (the only other hit is paper/paper.bib, a published record), pyproject's `optional` extra is ["numba"], and CI installs no pylops while 270 of 271 tests pass — the single failure is an unrelated autoarray mask-shape guard on main. The sentence and its code-block go together; leaving the heading with an empty code-block would be invalid RST. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7kFdoYcD6wnTifNXV5T98
|
#108 is green on all three legs (3.12, 3.13, no-jax) — it fixes the Merge order: #108 first, then this PR needs its branch updated (or a re-run) to pick up the fixed Generated by Claude Code |
Part of PyAutoLabs/PyAutoHands#258 (phase 3 of 3 of the pynufft-removal residue sweep — this is the PyAutoCTI leg; PyAutoHands and PyAutoHeart carry their own PRs, and the three are independent).
What changed
docs/installation/source.rsttold users, under "For unit tests to pass you will also need the following optional requirements":Neither is needed. The whole stanza is gone from the Building Only PyAutoCTI section — the sentence and its code-block go together, since leaving the heading with an empty code-block would be invalid RST.
TransformerNUFFTPyNUFFTand dropped pynufft from bothoptionalanddev.Verified, not assumed
The prompt for this task specifically asked that PyAutoCTI's suite be confirmed to pass without pynufft before the line came out. The same evidence covers pylops:
.github/workflows/main.ymlis a thin caller of PyAutoHeart's reusablelib-tests.yml, which installs./PyAutoCTI[optional]plus the PyAutoNerves/PyAutoFit/PyAutoArray chain and installs neither pynufft nor pylops — in either theunittestleg or theunittest-nojaxleg.pyproject.toml'soptionalextra is["numba"].mainrun of that workflow (31134701968) is success on every leg — 3.12, 3.13, andunittest-nojax.paper/paper.bib,files/citations.texand the deleted line; pylops only inpaper/paper.biband the deleted line. No import, no test, no config.About the red CI on this PR
It is not this change — the diff is documentation only.
test_serial_eper.py::test__region_list_from__array_2d_list_fromfails onmaintoo, becauselib-tests.ymlclones PyAutoArraymainand PyAutoArray#440's zero-lengthshape_nativeguard (2026-08-09, after this repo's lastmainrun on 2026-08-07) now rejects a degenerate(3, 0)region the test builds from an out-of-rangepixelswindow. Full analysis in this comment; tracked separately so it does not widen a docs PR.Deliberately out of scope
paper/paper.bibandfiles/citations.tex— published-record material; the parent task made that call explicitly.pip install -r PyAutoArray/optional_requirements.txt, and the prose above points atPyAutoCTI/requirements.txt— neither file exists any more (packaging moved topyproject.tomlextras). Separate doc rot, separate task.