Remove optional dependence on SciPy for FFT operations #791
+20
−48
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR removes SciPy as an optional dependency for PyWavelets, making NumPy the only dependency. This follows the discussion from #741 (comment).
Changes made
SCIPY_MIN
andUSE_SCIPY
environment variables and their corresponding jobs created from them, and removal ofscipy
as a nightly dependency that's installed from the SPNW Anaconda.org indexpywt/data/create_dat.py
helper script has been moved to theutil/
directory outside the package's source tree.The README/manual, the installation guide, and the
optional-dependencies
table inpyproject.toml
no longer mention SciPy as an optional dependency. At some other point, the optional dependencies could be populated with[test]
or[docs]
.numpy.fft
to calculate the continuous wavelet transform (throughpywt/_cwt.py
), as NumPy >=2 has been available for some while now. We could advise users about the performance regression (if they still have NumPy 1.x in their environment) through the release notes. I haven't spent time benchmarking whether SciPy is still faster or not.Other references to SciPy, such as its intersphinx mapping, and PyWavelets's adoption of its code of conduct from SciPy's, mailing list links, a few code comments, and so on have been kept.
Question(s)
There is a "FIXME:" comment here:
pywt/pywt/_functions.py
Lines 80 to 102 in 281caa4
Additional context
N/A