aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGonzalo Tornaría <tornaria@cmat.edu.uy>2024-08-20 01:20:05 +0000
committerAndrew J. Hesford <ajh@sideband.org>2024-08-23 13:46:19 +0000
commit43ff15a5eae334b6727318b576d9049d3d682761 (patch)
tree38b215e36f7004b07e99589372f9766781ca56b8
parente7829447ef6bbcff1cc538ac58b9ca9de8479808 (diff)
downloadvoid-packages-43ff15a5eae334b6727318b576d9049d3d682761.tar
void-packages-43ff15a5eae334b6727318b576d9049d3d682761.tar.gz
void-packages-43ff15a5eae334b6727318b576d9049d3d682761.tar.bz2
void-packages-43ff15a5eae334b6727318b576d9049d3d682761.tar.lz
void-packages-43ff15a5eae334b6727318b576d9049d3d682761.tar.xz
void-packages-43ff15a5eae334b6727318b576d9049d3d682761.tar.zst
void-packages-43ff15a5eae334b6727318b576d9049d3d682761.zip
sagemath: patch for numpy 2.1
-rw-r--r--srcpkgs/sagemath/patches/numpy_2.1a.patch28
-rw-r--r--srcpkgs/sagemath/patches/numpy_2.1b.patch229
-rw-r--r--srcpkgs/sagemath/template4
3 files changed, 259 insertions, 2 deletions
diff --git a/srcpkgs/sagemath/patches/numpy_2.1a.patch b/srcpkgs/sagemath/patches/numpy_2.1a.patch
new file mode 100644
index 00000000000..30e2de99d84
--- /dev/null
+++ b/srcpkgs/sagemath/patches/numpy_2.1a.patch
@@ -0,0 +1,28 @@
+commit 241dc39bd0ba1c056f88bee46a0345d59093eaff
+Author: Gonzalo Tornaría <tornaria@cmat.edu.uy>
+Date: Mon Aug 19 23:25:32 2024 -0300
+
+ add copy parameter to numpy (needed for v2.1)
+
+diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx
+index c38df5412f0..f587cef651a 100644
+--- a/src/sage/matrix/matrix1.pyx
++++ b/src/sage/matrix/matrix1.pyx
+@@ -671,7 +671,7 @@ cdef class Matrix(Matrix0):
+ entries = [[sib(v, 2) for v in row] for row in self.rows()]
+ return sib.name('matrix')(self.base_ring(), entries)
+
+- def numpy(self, dtype=None):
++ def numpy(self, dtype=None, copy=True):
+ """
+ Return the Numpy matrix associated to this matrix.
+
+@@ -732,7 +732,7 @@ cdef class Matrix(Matrix0):
+ (3, 4)
+ """
+ import numpy
+- A = numpy.matrix(self.list(), dtype=dtype)
++ A = numpy.matrix(self.list(), dtype=dtype, copy=copy)
+ return numpy.resize(A,(self.nrows(), self.ncols()))
+
+ # Define the magic "__array__" function so that numpy.array(m) can convert
diff --git a/srcpkgs/sagemath/patches/numpy_2.1b.patch b/srcpkgs/sagemath/patches/numpy_2.1b.patch
new file mode 100644
index 00000000000..b77e28361d2
--- /dev/null
+++ b/srcpkgs/sagemath/patches/numpy_2.1b.patch
@@ -0,0 +1,229 @@
+commit 8b32fdb87725c1d67ffb51dadec1c331c7c35f3c
+Author: Gonzalo Tornaría <tornaria@cmat.edu.uy>
+Date: Tue Aug 20 00:05:33 2024 -0300
+
+ silence np.set_printoptions (for numpy 2.1)
+
+diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py
+index b3ebd206cd2..48866824224 100644
+--- a/src/sage/combinat/fully_packed_loop.py
++++ b/src/sage/combinat/fully_packed_loop.py
+@@ -68,7 +68,7 @@ def _make_color_list(n, colors=None, color_map=None, randomize=False):
+
+ sage: import numpy as np
+ sage: if int(np.version.short_version[0]) > 1:
+- ....: np.set_printoptions(legacy="1.25")
++ ....: _token = np.set_printoptions(legacy="1.25")
+ sage: from sage.combinat.fully_packed_loop import _make_color_list
+ sage: _make_color_list(5)
+ sage: _make_color_list(5, ['blue', 'red'])
+diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py
+index 2a03bb68f67..30b56722e66 100644
+--- a/src/sage/functions/special.py
++++ b/src/sage/functions/special.py
+@@ -219,7 +219,7 @@ class SphericalHarmonic(BuiltinFunction):
+ sage: from scipy.special import sph_harm # NB: arguments x and y are swapped # needs scipy
+ sage: import numpy as np # needs scipy
+ sage: if int(np.version.short_version[0]) > 1: # needs scipy
+- ....: np.set_printoptions(legacy="1.25") # needs scipy
++ ....: _token = np.set_printoptions(legacy="1.25") # needs scipy
+ sage: sph_harm(1, 1, pi.n(), (pi/2).n()) # abs tol 1e-14 # needs scipy sage.symbolic
+ (0.3454941494713355-4.231083042742082e-17j)
+
+diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py
+index 7ae8ca4966f..4cba22efdba 100644
+--- a/src/sage/numerical/optimize.py
++++ b/src/sage/numerical/optimize.py
+@@ -385,7 +385,7 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm="default",
+ ....: return sum(100.0r*(x[1r:]-x[:-1r]**2.0r)**2.0r + (1r-x[:-1r])**2.0r)
+ sage: import numpy
+ sage: if int(numpy.version.short_version[0]) > 1:
+- ....: numpy.set_printoptions(legacy="1.25")
++ ....: _token = numpy.set_printoptions(legacy="1.25")
+ sage: from numpy import zeros
+ sage: def rosen_der(x):
+ ....: xm = x[1r:-1r]
+diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py
+index 23e2517ca56..7375dcd5d1c 100644
+--- a/src/sage/plot/arrow.py
++++ b/src/sage/plot/arrow.py
+@@ -55,7 +55,7 @@ class CurveArrow(GraphicPrimitive):
+
+ sage: import numpy # to ensure numpy 2.0 compatibility
+ sage: if int(numpy.version.short_version[0]) > 1:
+- ....: numpy.set_printoptions(legacy="1.25")
++ ....: _token = numpy.set_printoptions(legacy="1.25")
+ sage: from sage.plot.arrow import CurveArrow
+ sage: b = CurveArrow(path=[[(0,0),(.5,.5),(1,0)],[(.5,1),(0,0)]],
+ ....: options={})
+diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py
+index 6be448f1e04..004594b77c4 100644
+--- a/src/sage/plot/multigraphics.py
++++ b/src/sage/plot/multigraphics.py
+@@ -786,7 +786,7 @@ class MultiGraphics(WithEqualityById, SageObject):
+ (0.2, 0.3, 0.4, 0.1)
+ sage: import numpy # to ensure numpy 2.0 compatibility
+ sage: if int(numpy.version.short_version[0]) > 1:
+- ....: numpy.set_printoptions(legacy="1.25")
++ ....: _token = numpy.set_printoptions(legacy="1.25")
+ sage: ax1.get_position().bounds # tol 1.0e-13
+ (0.2, 0.3, 0.4000000000000001, 0.10000000000000003)
+
+@@ -1300,7 +1300,7 @@ class GraphicsArray(MultiGraphics):
+ sage: G = graphics_array([g1, g2])
+ sage: import numpy # to ensure numpy 2.0 compatibility
+ sage: if int(numpy.version.short_version[0]) > 1:
+- ....: numpy.set_printoptions(legacy="1.25")
++ ....: _token = numpy.set_printoptions(legacy="1.25")
+ sage: G.position(0) # tol 5.0e-3
+ (0.025045451349937315,
+ 0.03415488992713045,
+diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py
+index d2cb11088c7..6d88517cc15 100644
+--- a/src/sage/plot/streamline_plot.py
++++ b/src/sage/plot/streamline_plot.py
+@@ -73,7 +73,7 @@ class StreamlinePlot(GraphicPrimitive):
+ sage: x, y = var('x y')
+ sage: import numpy # to ensure numpy 2.0 compatibility
+ sage: if int(numpy.version.short_version[0]) > 1:
+- ....: numpy.set_printoptions(legacy="1.25")
++ ....: _token = numpy.set_printoptions(legacy="1.25")
+ sage: d = streamline_plot((.01*x, x+y), (x,10,20), (y,10,20))[0].get_minmax_data()
+ sage: d['xmin']
+ 10.0
+diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx
+index 38c30f7627b..cfb8a5ff5f7 100644
+--- a/src/sage/rings/integer.pyx
++++ b/src/sage/rings/integer.pyx
+@@ -594,7 +594,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement):
+
+ sage: import numpy # needs numpy
+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy
+- ....: numpy.set_printoptions(legacy="1.25") # needs numpy
++ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy
+ sage: numpy.int8('12') == 12 # needs numpy
+ True
+ sage: 12 == numpy.int8('12') # needs numpy
+diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx
+index 76fbfedab95..57de30c9d18 100644
+--- a/src/sage/rings/real_mpfi.pyx
++++ b/src/sage/rings/real_mpfi.pyx
+@@ -232,7 +232,7 @@ TESTS::
+
+ sage: import numpy # needs numpy
+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy
+- ....: numpy.set_printoptions(legacy="1.25") # needs numpy
++ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy
+ sage: RIF(2) == numpy.int8('2') # needs numpy
+ True
+ sage: numpy.int8('2') == RIF(2) # needs numpy
+diff --git a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx
+index 70ce616f92f..f604c6d3785 100644
+--- a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx
++++ b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx
+@@ -78,7 +78,7 @@ cdef class PeriodicRegion:
+
+ sage: import numpy as np
+ sage: if int(np.version.short_version[0]) > 1:
+- ....: np.set_printoptions(legacy="1.25")
++ ....: _token = np.set_printoptions(legacy="1.25")
+ sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion
+ sage: data = np.zeros((4, 4))
+ sage: PeriodicRegion(CDF(2), CDF(2*I), data).is_empty()
+@@ -298,7 +298,7 @@ cdef class PeriodicRegion:
+
+ sage: import numpy as np
+ sage: if int(np.version.short_version[0]) > 1:
+- ....: np.set_printoptions(legacy="1.25")
++ ....: _token = np.set_printoptions(legacy="1.25")
+ sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion
+ sage: data = np.zeros((10, 10))
+ sage: data[1:4,1:4] = True
+@@ -322,7 +322,7 @@ cdef class PeriodicRegion:
+
+ sage: import numpy as np
+ sage: if int(np.version.short_version[0]) > 1:
+- ....: np.set_printoptions(legacy="1.25")
++ ....: _token = np.set_printoptions(legacy="1.25")
+ sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion
+ sage: data = np.zeros((4, 4))
+ sage: data[1,1] = True
+@@ -377,7 +377,7 @@ cdef class PeriodicRegion:
+
+ sage: import numpy as np
+ sage: if int(np.version.short_version[0]) > 1:
+- ....: np.set_printoptions(legacy="1.25")
++ ....: _token = np.set_printoptions(legacy="1.25")
+ sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion
+
+ sage: data = np.zeros((20, 20))
+@@ -529,7 +529,7 @@ cdef class PeriodicRegion:
+
+ sage: import numpy as np
+ sage: if int(np.version.short_version[0]) > 1:
+- ....: np.set_printoptions(legacy="1.25")
++ ....: _token = np.set_printoptions(legacy="1.25")
+ sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion
+ sage: data = np.zeros((4, 4))
+ sage: data[1, 1] = True
+diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py
+index 6937f6cb410..fb296e00fb6 100644
+--- a/src/sage/stats/basic_stats.py
++++ b/src/sage/stats/basic_stats.py
+@@ -228,7 +228,7 @@ def std(v, bias=False):
+ sage: # needs numpy
+ sage: import numpy
+ sage: if int(numpy.version.short_version[0]) > 1:
+- ....: numpy.set_printoptions(legacy="1.25")
++ ....: _token = numpy.set_printoptions(legacy="1.25")
+ sage: x = numpy.array([1,2,3,4,5])
+ sage: std(x, bias=False)
+ 1.5811388300841898
+@@ -307,7 +307,7 @@ def variance(v, bias=False):
+ 0.4897530450000000?
+ sage: import numpy # needs numpy
+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy
+- ....: numpy.set_printoptions(legacy="1.25") # needs numpy
++ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy
+ sage: x = numpy.array([1,2,3,4,5]) # needs numpy
+ sage: variance(x, bias=False) # needs numpy
+ 2.5
+diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx
+index 955a256e9b4..e5ed6160b79 100644
+--- a/src/sage/structure/coerce.pyx
++++ b/src/sage/structure/coerce.pyx
+@@ -521,7 +521,7 @@ cdef class CoercionModel:
+
+ sage: import numpy # needs numpy
+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy
+- ....: numpy.set_printoptions(legacy="1.25") # needs numpy
++ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy
+
+ sage: # needs sage.rings.real_mpfr
+ sage: x = polygen(RR)
+diff --git a/src/sage/symbolic/function.pyx b/src/sage/symbolic/function.pyx
+index cd89ad2a256..6fdf6d8ef23 100644
+--- a/src/sage/symbolic/function.pyx
++++ b/src/sage/symbolic/function.pyx
+@@ -965,7 +965,7 @@ cdef class BuiltinFunction(Function):
+
+ sage: import numpy # needs numpy
+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy
+- ....: numpy.set_printoptions(legacy="1.25") # needs numpy
++ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy
+
+ sage: sin(numpy.int32(0)) # needs numpy
+ 0.0
+diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx
+index 5b007d9e5fd..4a096d317e7 100644
+--- a/src/sage/symbolic/ring.pyx
++++ b/src/sage/symbolic/ring.pyx
+@@ -1163,7 +1163,7 @@ cdef class NumpyToSRMorphism(Morphism):
+
+ sage: import numpy # needs numpy
+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy
+- ....: numpy.set_printoptions(legacy="1.25") # needs numpy
++ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy
+ sage: f(x) = x^2
+ sage: f(numpy.int8('2')) # needs numpy
+ 4
diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template
index befe33a0188..b116e62bc67 100644
--- a/srcpkgs/sagemath/template
+++ b/srcpkgs/sagemath/template
@@ -1,7 +1,7 @@
# Template file for 'sagemath'
pkgname=sagemath
version=10.4
-revision=2
+revision=3
_pypi_version=${version/.beta/b}
_pypi_version=${_pypi_version/.rc/rc}
build_style=python3-pep517
@@ -25,7 +25,7 @@ depends="eclib-devel fflas-ffpack flintlib-devel gcc-fortran meson gd-devel
python3-sympy python3-traitlets sage-data-combinatorial_designs
python3-conway-polynomials sage-data-elliptic_curves sage-data-graphs
sage-data-polytopes_db sympow tachyon threejs-sage"
-checkdepends="$depends pythran python3-Sphinx gdb"
+checkdepends="$depends python3-pytest pythran python3-Sphinx gdb"
short_desc="Open source mathematics software"
maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
license="GPL-2.0-or-later"