Subject: CVS commit: pkgsrc/math/py-scipy
From: Adam Ciarcinski
Date: 2024-04-19 21:24:25
Message id: 20240419192425.E8890FA2C@cvs.NetBSD.org

Log Message:
py-scipy: updated to 1.13.0

SciPy 1.13.0 is the culmination of 3 months of hard work. This
out-of-band release aims to support NumPy ``2.0.0``, and is backwards
compatible to NumPy ``1.22.4``. The version of OpenBLAS used to build
the PyPI wheels has been increased to ``0.3.26.dev``.

This release requires Python 3.9+ and NumPy 1.22.4 or greater.

For running on PyPy, PyPy3 6.0+ is required.

**************************
Highlights of this release
**************************
- Support for NumPy ``2.0.0``.
- Interactive examples have been added to the documentation, allowing users
  to run the examples locally on embedded Jupyterlite notebooks in their
  browser.
- Preliminary 1D array support for the COO and DOK sparse formats.
- Several `scipy.stats` functions have gained support for additional
  ``axis``, ``nan_policy``, and ``keepdims`` arguments. `scipy.stats` also
  has several performance and accuracy improvements.

************
New features
************

`scipy.integrate` improvements
==============================
- The ``terminal`` attribute of `scipy.integrate.solve_ivp` ``events``
  callables now additionally accepts integer values to specify a number
  of occurrences required for termination, rather than the previous restriction
  of only accepting a ``bool`` value to terminate on the first registered
  event.

`scipy.io` improvements
=======================
- `scipy.io.wavfile.write` has improved ``dtype`` input validation.

`scipy.interpolate` improvements
================================
- The Modified Akima Interpolation has been added to
  ``interpolate.Akima1DInterpolator``, available via the new ``method``
  argument.
- New method ``BSpline.insert_knot`` inserts a knot into a ``BSpline`` instance.
  This routine is similar to the module-level `scipy.interpolate.insert`
  function, and works with the BSpline objects instead of ``tck`` tuples.
- ``RegularGridInterpolator`` gained the functionality to compute derivatives
  in place. For instance, ``RegularGridInterolator((x, y), values,
  method="cubic")(xi, nu=(1, 1))`` evaluates the mixed second derivative,
  :math:`\partial^2 / \partial x \partial y` at ``xi``.
- Performance characteristics of tensor-product spline methods of
  ``RegularGridInterpolator`` have been changed: evaluations should be
  significantly faster, while construction might be slower. If you experience
  issues with construction times, you may need to experiment with optional
  keyword arguments ``solver`` and ``solver_args``. Previous behavior (fast
  construction, slow evaluations) can be obtained via `"*_legacy"` methods:
  ``method="cubic_legacy"`` is exactly equivalent to \ 
``method="cubic"`` in
  previous releases. See ``gh-19633`` for details.

`scipy.signal` improvements
===========================
- Many filter design functions now have improved input validation for the
  sampling frequency (``fs``).

`scipy.sparse` improvements
===========================
- ``coo_array`` now supports 1D shapes, and has additional 1D support for
  ``min``, ``max``, ``argmin``, and ``argmax``. The DOK format now has
  preliminary 1D support as well, though only supports simple integer indices
  at the time of writing.
- Experimental support has been added for ``pydata/sparse`` array inputs to
  `scipy.sparse.csgraph`.
- ``dok_array`` and ``dok_matrix`` now have proper implementations of
  ``fromkeys``.
- ``csr`` and ``csc`` formats now have improved ``setdiag`` performance.

`scipy.spatial` improvements
============================
- ``voronoi_plot_2d`` now draws Voronoi edges to infinity more clearly
  when the aspect ratio is skewed.

`scipy.special` improvements
============================
- All Fortran code, namely, ``AMOS``, ``specfun``, and ``cdflib`` libraries
  that the majority of special functions depend on, is ported to Cython/C.
- The function ``factorialk`` now also supports faster, approximate
  calculation using ``exact=False``.

`scipy.stats` improvements
==========================
- `scipy.stats.rankdata` and `scipy.stats.wilcoxon` have been vectorized,
  improving their performance and the performance of hypothesis tests that
  depend on them.
- ``stats.mannwhitneyu`` should now be faster due to a vectorized statistic
  calculation, improved caching, improved exploitation of symmetry, and a
  memory reduction. ``PermutationMethod`` support was also added.
- `scipy.stats.mood` now has ``nan_policy`` and ``keepdims`` support.
- `scipy.stats.brunnermunzel` now has ``axis`` and ``keepdims`` support.
- `scipy.stats.friedmanchisquare`, `scipy.stats.shapiro`,
  `scipy.stats.normaltest`, `scipy.stats.skewtest`,
  `scipy.stats.kurtosistest`, `scipy.stats.f_oneway`,
  `scipy.stats.alexandergovern`, `scipy.stats.combine_pvalues`, and
  `scipy.stats.kstest` have gained ``axis``, ``nan_policy`` and
  ``keepdims`` support.
- `scipy.stats.boxcox_normmax` has gained a ``ymax`` parameter to allow user
  specification of the maximum value of the transformed data.
- `scipy.stats.vonmises` ``pdf`` method has been extended to support
  ``kappa=0``. The ``fit`` method is also more performant due to the use of
  non-trivial bounds to solve for ``kappa``.
- High order ``moment`` calculations for `scipy.stats.powerlaw` are now more
  accurate.
- The ``fit`` methods of  `scipy.stats.gamma` (with ``method='mm'``) and
  `scipy.stats.loglaplace` are faster and more reliable.
- `scipy.stats.goodness_of_fit` now supports the use of a custom ``statistic``
  provided by the user.
- `scipy.stats.wilcoxon` now supports ``PermutationMethod``, enabling
  calculation of accurate p-values in the presence of ties and zeros.
- `scipy.stats.monte_carlo_test` now has improved robustness in the face of
  numerical noise.
- `scipy.stats.wasserstein_distance_nd` was introduced to compute the
  Wasserstein-1 distance between two N-D discrete distributions.

*******************
Deprecated features
*******************
- Complex dtypes in ``PchipInterpolator`` and ``Akima1DInterpolator`` have
  been deprecated and will raise an error in SciPy 1.15.0. If you are trying
  to use the real components of the passed array, use ``np.real`` on ``y``.

******************************
Backwards incompatible changes
******************************

*************
Other changes
*************
- The second argument of `scipy.stats.moment` has been renamed to ``order``
  while maintaining backward compatibility.

Files:
RevisionActionfile
1.78modifypkgsrc/math/py-scipy/Makefile
1.28modifypkgsrc/math/py-scipy/PLIST
1.51modifypkgsrc/math/py-scipy/distinfo
1.4modifypkgsrc/math/py-scipy/patches/patch-scipy_spatial_ckdtree_src_ckdtree__decl.h
1.1addpkgsrc/math/py-scipy/patches/patch-scipy_special_special_amos_amos.h
1.1addpkgsrc/math/py-scipy/patches/patch-scipy_special_special_specfun.h
1.1addpkgsrc/math/py-scipy/patches/patch-scipy_special_stirling2.h