From 5552d7472e2439f30f5150fd6f43a7e7702cfc80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 11 Aug 2024 22:53:42 -0300 Subject: [PATCH 1/4] python3-Cython: alternative fix for 6122 --- srcpkgs/python3-Cython/patches/fix-regression.patch | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/srcpkgs/python3-Cython/patches/fix-regression.patch b/srcpkgs/python3-Cython/patches/fix-regression.patch index f2e761608e373b..f5957cfa59c2f5 100644 --- a/srcpkgs/python3-Cython/patches/fix-regression.patch +++ b/srcpkgs/python3-Cython/patches/fix-regression.patch @@ -15,3 +15,11 @@ serious regression, e.g. sagemath FTBS with cython 3.0.11 warning(self.pos, "Implicit noexcept declaration is deprecated." " Function declaration should contain 'noexcept' keyword.", +@@ -3128,6 +3126,7 @@ class DefNode(FuncDefNode): + if scope is None: + scope = cfunc.scope + cfunc_type = cfunc.type ++ has_explicit_exc_clause=True + if len(self.args) != len(cfunc_type.args) or cfunc_type.has_varargs: + error(self.pos, "wrong number of arguments") + error(cfunc.pos, "previous declaration here") From 84dfd2776f3b306beaabf613896707ba1886679d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 5 Aug 2024 00:21:23 -0300 Subject: [PATCH 2/4] sagemath: update to 10.5.beta2. --- .../sagemath/patches/36641-sympy_1.13.patch | 22 +- .../sagemath/patches/37884-gap_4.13.1.patch | 28 +- .../sagemath/patches/38250-numpy_2.0.patch | 587 ------------------ .../sagemath/patches/38344-ecm_7.0.6.patch | 43 -- srcpkgs/sagemath/patches/get_patches | 4 +- srcpkgs/sagemath/template | 6 +- 6 files changed, 21 insertions(+), 669 deletions(-) delete mode 100644 srcpkgs/sagemath/patches/38250-numpy_2.0.patch delete mode 100644 srcpkgs/sagemath/patches/38344-ecm_7.0.6.patch diff --git a/srcpkgs/sagemath/patches/36641-sympy_1.13.patch b/srcpkgs/sagemath/patches/36641-sympy_1.13.patch index 625c582cdd41b7..01e859ad023f4d 100644 --- a/srcpkgs/sagemath/patches/36641-sympy_1.13.patch +++ b/srcpkgs/sagemath/patches/36641-sympy_1.13.patch @@ -1,8 +1,5 @@ -diff --git a/build/pkgs/sympy/requirements.txt b/build/pkgs/sympy/requirements.txt -new file mode 100644 -index 00000000000..3ef8f90b550 diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py -index 7e9eab2ff2e..43365cd645e 100644 +index 823a0d14a41..de1c8531814 100644 --- a/src/sage/doctest/forker.py +++ b/src/sage/doctest/forker.py @@ -150,14 +150,15 @@ def init_sage(controller=None): @@ -28,7 +25,7 @@ index 7e9eab2ff2e..43365cd645e 100644 The displayhook sorts dictionary keys to simplify doctesting of dictionary output:: diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py -index 010c61febe0..bbccbd20032 100644 +index ade7836b310..eb5c6665c0d 100644 --- a/src/sage/functions/hypergeometric.py +++ b/src/sage/functions/hypergeometric.py @@ -124,7 +124,7 @@ @@ -40,21 +37,8 @@ index 010c61febe0..bbccbd20032 100644 sage: hypergeometric((5, 4), (4, 4), 3)._mathematica_init_() # needs sage.symbolic 'HypergeometricPFQ[{5,4},{4,4},3]' -diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx -index a92fe241355..f62311423be 100644 ---- a/src/sage/symbolic/expression.pyx -+++ b/src/sage/symbolic/expression.pyx -@@ -1167,7 +1167,7 @@ cdef class Expression(Expression_abc): - sage: unicode_art(SR(13 - I)) - 13 - ⅈ - sage: unicode_art(SR(1.3 - I)) -- 1.3 - ⅈ -+ 1.3 - 1.0⋅ⅈ - sage: unicode_art(cos(I)) - cosh(1) - diff --git a/src/sage/typeset/ascii_art.py b/src/sage/typeset/ascii_art.py -index 28024405d27..458fa8724a3 100644 +index 83d92af8959..e470e2bd88d 100644 --- a/src/sage/typeset/ascii_art.py +++ b/src/sage/typeset/ascii_art.py @@ -44,11 +44,12 @@ diff --git a/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch b/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch index 1550d47e2436c6..321e0a94487da3 100644 --- a/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch +++ b/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch @@ -1,21 +1,21 @@ diff --git a/src/sage/algebras/fusion_rings/fusion_double.py b/src/sage/algebras/fusion_rings/fusion_double.py -index 7ce086f70d0..954513572c3 100644 +index 71277561331..3b681d75d3b 100644 --- a/src/sage/algebras/fusion_rings/fusion_double.py +++ b/src/sage/algebras/fusion_rings/fusion_double.py @@ -133,7 +133,7 @@ class FusionDouble(CombinatorialFreeModule): sage: G = SmallPermutationGroup(16,9) - sage: F = FusionDouble(G, prefix="b",inject_variables=True) + sage: F = FusionDouble(G, prefix='b', inject_variables=True) sage: b13^2 # long time (4s) - b0 + b2 + b4 + b15 + b16 + b17 + b18 + b24 + b26 + b27 + b0 + b3 + b4 - """ @staticmethod + def __classcall_private__(cls, G, prefix='s', inject_variables=False): diff --git a/src/sage/categories/simplicial_sets.py b/src/sage/categories/simplicial_sets.py -index e714a4571c4..a2b87a729d1 100644 +index aabd3cdbb4f..14bebdcd080 100644 --- a/src/sage/categories/simplicial_sets.py +++ b/src/sage/categories/simplicial_sets.py -@@ -593,9 +593,9 @@ def _canonical_twisting_operator(self): +@@ -591,9 +591,9 @@ def _canonical_twisting_operator(self): sage: X = simplicial_sets.Torus() sage: d = X._canonical_twisting_operator() sage: d @@ -27,7 +27,7 @@ index e714a4571c4..a2b87a729d1 100644 sage: Y = simplicial_sets.RealProjectiveSpace(2) sage: d2 = Y._canonical_twisting_operator() sage: d2 -@@ -677,10 +677,10 @@ def twisted_chain_complex(self, twisting_operator=None, dimensions=None, augment +@@ -674,10 +674,10 @@ def twisted_chain_complex(self, twisting_operator=None, dimensions=None, augment sage: X = simplicial_sets.Torus() sage: C = X.twisted_chain_complex() sage: C.differential(1) @@ -41,7 +41,7 @@ index e714a4571c4..a2b87a729d1 100644 [ -1 -1] sage: C.differential(3) [] -@@ -848,29 +848,29 @@ def twisted_homology(self, n, reduced=False): +@@ -844,29 +844,29 @@ def twisted_homology(self, n, reduced=False): sage: # needs sage.graphs sage: Y = simplicial_sets.Torus() sage: Y.twisted_homology(1) @@ -80,10 +80,10 @@ index e714a4571c4..a2b87a729d1 100644 [1 0 0 0 0] [0 1 0 0 0] diff --git a/src/sage/combinat/matrices/latin.py b/src/sage/combinat/matrices/latin.py -index 936edcc6ea4..c06a53d9afd 100644 +index e2d818e9480..84e6c4fcc9b 100644 --- a/src/sage/combinat/matrices/latin.py +++ b/src/sage/combinat/matrices/latin.py -@@ -2453,7 +2453,7 @@ def p3_group_bitrade_generators(p): +@@ -2444,7 +2444,7 @@ def p3_group_bitrade_generators(p): EXAMPLES:: sage: from sage.combinat.matrices.latin import * @@ -93,7 +93,7 @@ index 936edcc6ea4..c06a53d9afd 100644 (1,2,3)(4,7,8)(5,6,9), (1,9,2)(3,7,4)(5,8,6), diff --git a/src/sage/groups/cubic_braid.py b/src/sage/groups/cubic_braid.py -index 257b400f1c7..36423c756aa 100644 +index 61db70925e1..521289c7578 100644 --- a/src/sage/groups/cubic_braid.py +++ b/src/sage/groups/cubic_braid.py @@ -282,7 +282,7 @@ def _richcmp_(self, other, op): @@ -106,7 +106,7 @@ index 257b400f1c7..36423c756aa 100644 c1*c0^-1*c1, c0^-1*c1^-1*c0^-1, c0^-1*c1^-1, c1^-1*c0*c1^-1, c0*c1^-1*c0^-1, c0^-1*c1, c0^-1*c1*c0, c0*c1^-1, c1*c0^-1, diff --git a/src/sage/groups/finitely_presented.py b/src/sage/groups/finitely_presented.py -index 4bb52ee4efb..85f572fac6c 100644 +index 4ac2faa783b..7016d08381b 100644 --- a/src/sage/groups/finitely_presented.py +++ b/src/sage/groups/finitely_presented.py @@ -1344,8 +1344,8 @@ def abelianization_map(self): @@ -161,10 +161,10 @@ index 4bb52ee4efb..85f572fac6c 100644 sage: G.characteristic_varieties(groebner=True) {0: [-1 + F1, 1 + F1, 1 - F1 + F1^2, 1 + F1 + F1^2], 1: [1 - F1 + F1^2], 2: []} diff --git a/src/sage/groups/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py -index c1f2683907b..d219e104a2c 100644 +index 5c153b93d4c..bd4afad2942 100644 --- a/src/sage/groups/perm_gps/permgroup_named.py +++ b/src/sage/groups/perm_gps/permgroup_named.py -@@ -3468,16 +3468,14 @@ class SmallPermutationGroup(PermutationGroup_generic): +@@ -3465,16 +3465,14 @@ class SmallPermutationGroup(PermutationGroup_generic): sage: G = SmallPermutationGroup(12,4); G Group of order 12 and GAP Id 4 as a permutation group sage: G.gens() @@ -186,7 +186,7 @@ index c1f2683907b..d219e104a2c 100644 sage: def numgps(n): return ZZ(libgap.NumberSmallGroups(n)) sage: all(SmallPermutationGroup(n,k).id() == [n,k] ....: for n in [1..64] for k in [1..numgps(n)]) -@@ -3486,11 +3484,11 @@ class SmallPermutationGroup(PermutationGroup_generic): +@@ -3483,11 +3481,11 @@ class SmallPermutationGroup(PermutationGroup_generic): sage: H.is_abelian() False sage: [H.centralizer(g) for g in H.conjugacy_classes_representatives()] diff --git a/srcpkgs/sagemath/patches/38250-numpy_2.0.patch b/srcpkgs/sagemath/patches/38250-numpy_2.0.patch deleted file mode 100644 index e28fd857afcb75..00000000000000 --- a/srcpkgs/sagemath/patches/38250-numpy_2.0.patch +++ /dev/null @@ -1,587 +0,0 @@ -diff --git a/src/sage/arith/misc.py b/src/sage/arith/misc.py -index 28f81d7b798..d184c52bf19 100644 ---- a/src/sage/arith/misc.py -+++ b/src/sage/arith/misc.py -@@ -2277,7 +2277,7 @@ def power_mod(a, n, m): - - sage: from numpy import int32 # needs numpy - sage: power_mod(int32(2), int32(390), int32(391)) # needs numpy -- 285 -+ ...285... - sage: from gmpy2 import mpz - sage: power_mod(mpz(2), mpz(390), mpz(391)) - mpz(285) -diff --git a/src/sage/calculus/interpolators.pyx b/src/sage/calculus/interpolators.pyx -index 221b52369e2..bb0be7bab0c 100644 ---- a/src/sage/calculus/interpolators.pyx -+++ b/src/sage/calculus/interpolators.pyx -@@ -27,6 +27,9 @@ Development supported by NSF award No. 0702939. - import numpy as np - cimport numpy as np - -+if int(np.version.short_version[0]) > 1: -+ np.set_printoptions(legacy="1.25") -+ - from math import pi - cdef double TWOPI = 2*pi - -diff --git a/src/sage/calculus/riemann.pyx b/src/sage/calculus/riemann.pyx -index 6ec80d89aa7..c09d93c4260 100644 ---- a/src/sage/calculus/riemann.pyx -+++ b/src/sage/calculus/riemann.pyx -@@ -44,6 +44,9 @@ from sage.calculus.integration import numerical_integral - import numpy as np - cimport numpy as np - -+if int(np.version.short_version[0]) > 1: -+ np.set_printoptions(legacy="1.25") -+ - from math import pi - from math import sin - from math import cos -diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py -index b198fed0c0d..b3ebd206cd2 100644 ---- a/src/sage/combinat/fully_packed_loop.py -+++ b/src/sage/combinat/fully_packed_loop.py -@@ -66,6 +66,9 @@ def _make_color_list(n, colors=None, color_map=None, randomize=False): - r""" - TESTS:: - -+ sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: 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/env.py b/src/sage/env.py -index 722649ab3da..abb9b19f9e3 100644 ---- a/src/sage/env.py -+++ b/src/sage/env.py -@@ -296,7 +296,7 @@ def sage_include_directories(use_sources=False): - sage: import sage.env - sage: sage.env.sage_include_directories() - ['...', -- '.../numpy/core/include', -+ '.../numpy/...core/include', - '.../include/python...'] - - To check that C/C++ files are correctly found, we verify that we can -diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py -index e100ba3ee23..2a03bb68f67 100644 ---- a/src/sage/functions/special.py -+++ b/src/sage/functions/special.py -@@ -217,6 +217,9 @@ class SphericalHarmonic(BuiltinFunction): - sage: spherical_harmonic(1, 1, pi/2, pi).n() # abs tol 1e-14 # needs sage.symbolic - 0.345494149471335 - 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 - 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/graphs/generators/classical_geometries.py b/src/sage/graphs/generators/classical_geometries.py -index da04362eef3..957f88d2061 100644 ---- a/src/sage/graphs/generators/classical_geometries.py -+++ b/src/sage/graphs/generators/classical_geometries.py -@@ -1315,7 +1315,7 @@ def CossidentePenttilaGraph(q): - - from sage.libs.gap.libgap import libgap - adj_list = libgap.function_factory("""function(q) -- local z, e, so, G, nu, G1, G0, B, T, s, O1, O2, x; -+ local z, e, so, G, nu, G1, G0, B, T, s, O1, O2, x, sqo; - LoadPackage("grape"); - G0:=SO(3,q^2); - so:=GeneratorsOfGroup(G0); -diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py -index 063931ae274..0bafbd00564 100644 ---- a/src/sage/graphs/generic_graph.py -+++ b/src/sage/graphs/generic_graph.py -@@ -18420,6 +18420,9 @@ def shortest_path_all_pairs(self, by_weight=False, algorithm=None, - M = self.adjacency_matrix(vertices=int_to_vertex) - - # We call the Floyd-Warshall method from SciPy -+ import numpy # to ensure numpy 2.0 compatibility -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - from numpy import array as np_array - from scipy.sparse.csgraph import floyd_warshall - dd, pp = floyd_warshall(np_array(M), directed=self.is_directed(), -diff --git a/src/sage/graphs/graph_generators_pyx.pyx b/src/sage/graphs/graph_generators_pyx.pyx -index 033e8b22adc..04b20d3229b 100644 ---- a/src/sage/graphs/graph_generators_pyx.pyx -+++ b/src/sage/graphs/graph_generators_pyx.pyx -@@ -57,7 +57,7 @@ def RandomGNP(n, p, bint directed=False, bint loops=False, seed=None): - - sage: from numpy import mean # needs numpy - sage: abs(mean([RandomGNP(200, .2).density() for i in range(30)]) - .2) < .001 # needs numpy -- True -+ ...True... - sage: RandomGNP(150, .2, loops=True) - Traceback (most recent call last): - ... -diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx -index a810418389c..c38df5412f0 100644 ---- a/src/sage/matrix/matrix1.pyx -+++ b/src/sage/matrix/matrix1.pyx -@@ -705,12 +705,15 @@ cdef class Matrix(Matrix0): - Type ``numpy.typecodes`` for a list of the possible - typecodes:: - -- sage: import numpy # needs numpy -- sage: sorted(numpy.typecodes.items()) # needs numpy -+ sage: import numpy # needs numpy -+ sage: numpy.typecodes.items() # needs numpy # random - [('All', '?bhilqpBHILQPefdgFDGSUVOMm'), ('AllFloat', 'efdgFDG'), -- ('AllInteger', 'bBhHiIlLqQpP'), ('Character', 'c'), ('Complex', 'FDG'), -- ('Datetime', 'Mm'), ('Float', 'efdg'), ('Integer', 'bhilqp'), -- ('UnsignedInteger', 'BHILQP')] -+ ... -+ -+ For instance, you can see possibilities for real floating point numbers:: -+ -+ sage: numpy.typecodes['Float'] # needs numpy -+ 'efdg' - - Alternatively, numpy automatically calls this function (via - the magic :meth:`__array__` method) to convert Sage matrices -diff --git a/src/sage/modules/free_module_element.pyx b/src/sage/modules/free_module_element.pyx -index d71d22ac1f7..b6f297a3510 100644 ---- a/src/sage/modules/free_module_element.pyx -+++ b/src/sage/modules/free_module_element.pyx -@@ -555,7 +555,11 @@ def vector(arg0, arg1=None, arg2=None, sparse=None, immutable=False): - R = None - - try: -+ import numpy - from numpy import ndarray -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - except ImportError: - pass - else: -@@ -1188,7 +1192,11 @@ cdef class FreeModuleElement(Vector): # abstract base class - over Rational Field to numpy array of type <... 'float'>: - setting an array element with a sequence. - """ -+ import numpy - from numpy import array -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - try: - return array(self, dtype=dtype) - except ValueError as e: -diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py -index e3d94d1746e..7ae8ca4966f 100644 ---- a/src/sage/numerical/optimize.py -+++ b/src/sage/numerical/optimize.py -@@ -155,6 +155,10 @@ def find_root(f, a, b, xtol=10e-13, rtol=2.0**-50, maxiter=100, full_output=Fals - b = max(s_1, s_2) - - import scipy.optimize -+ import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - g = lambda x: float(f(x)) - brentqRes = scipy.optimize.brentq(g, a, b, - full_output=full_output, xtol=xtol, rtol=rtol, maxiter=maxiter) -@@ -288,6 +292,10 @@ def find_local_minimum(f, a, b, tol=1.48e-08, maxfun=500): - a = float(a) - b = float(b) - import scipy.optimize -+ import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - xmin, fval, iter, funcalls = scipy.optimize.fminbound(f, a, b, full_output=1, xtol=tol, maxfun=maxfun) - return fval, xmin - -@@ -376,6 +384,8 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm="default", - sage: def rosen(x): # The Rosenbrock function - ....: 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") - sage: from numpy import zeros - sage: def rosen_der(x): - ....: xm = x[1r:-1r] -@@ -393,6 +403,9 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm="default", - from sage.structure.element import Expression - from sage.ext.fast_callable import fast_callable - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - from scipy import optimize - if isinstance(func, Expression): - var_list = func.variables() -@@ -530,6 +543,8 @@ def minimize_constrained(func,cons,x0,gradient=None,algorithm='default', **args) - from sage.structure.element import Expression - from sage.ext.fast_callable import fast_callable - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - from scipy import optimize - function_type = type(lambda x,y: x+y) - -@@ -652,6 +667,8 @@ def find_fit(data, model, initial_guess=None, parameters=None, variables=None, s - ``lmdif`` and ``lmder`` algorithms. - """ - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - - if not isinstance(data, numpy.ndarray): - try: -diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py -index ac1dc79d802..23e2517ca56 100644 ---- a/src/sage/plot/arrow.py -+++ b/src/sage/plot/arrow.py -@@ -53,6 +53,9 @@ def get_minmax_data(self): - - EXAMPLES:: - -+ sage: import numpy # to ensure numpy 2.0 compatibility -+ sage: if int(numpy.version.short_version[0]) > 1: -+ ....: 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/complex_plot.pyx b/src/sage/plot/complex_plot.pyx -index f1f2671a803..4d71414e1c2 100644 ---- a/src/sage/plot/complex_plot.pyx -+++ b/src/sage/plot/complex_plot.pyx -@@ -1282,15 +1282,13 @@ def rgb_to_hls(rgb): - raise ValueError("Last dimension of input array must be 3; " - "shape {} was found.".format(rgb.shape)) - in_shape = rgb.shape -- rgb = np.array( -- rgb, copy=False, dtype=np.dtype(float), ndmin=2 -- ) -+ rgb = np.asarray(rgb, dtype=np.dtype(float)) - rgb_max = rgb.max(-1) - rgb_min = rgb.min(-1) - l = (rgb_max + rgb_min)/2.0 # lightness - - hls = np.zeros_like(rgb) -- delta = rgb.ptp(-1) -+ delta = np.ptp(rgb, -1) - s = np.zeros_like(delta) - - ipos = delta > 0 -diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py -index a84d162cb56..94f5db09d83 100644 ---- a/src/sage/plot/graphics.py -+++ b/src/sage/plot/graphics.py -@@ -2754,7 +2754,7 @@ def matplotlib(self, filename=None, - sage: xmin, xmax = sub.get_xlim() - sage: ymin, ymax = sub.get_ylim() - sage: xmin > xmax, ymin > ymax -- (True, True) -+ (...True..., ...True...) - """ - if not isinstance(ticks, (list, tuple)): - ticks = (ticks, None) -diff --git a/src/sage/plot/histogram.py b/src/sage/plot/histogram.py -index fa86a44bd0a..a585cacf9cd 100644 ---- a/src/sage/plot/histogram.py -+++ b/src/sage/plot/histogram.py -@@ -92,6 +92,8 @@ def get_minmax_data(self): - {'xmax': 10.0, 'xmin': 3.0, 'ymax': 0.476190476190..., 'ymin': 0} - """ - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - - # Extract these options (if they are not None) and pass them to - # histogram() -diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py -index b583be32317..6be448f1e04 100644 ---- a/src/sage/plot/multigraphics.py -+++ b/src/sage/plot/multigraphics.py -@@ -784,6 +784,9 @@ def _add_subplot(self, figure, index, **options): - True - sage: G.position(1) - (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") - sage: ax1.get_position().bounds # tol 1.0e-13 - (0.2, 0.3, 0.4000000000000001, 0.10000000000000003) - -@@ -1295,6 +1298,9 @@ def position(self, index): - sage: g1 = plot(sin(x), (x, -pi, pi)) - sage: g2 = circle((0,1), 1.) - 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") - sage: G.position(0) # tol 5.0e-3 - (0.025045451349937315, - 0.03415488992713045, -diff --git a/src/sage/plot/plot3d/implicit_surface.pyx b/src/sage/plot/plot3d/implicit_surface.pyx -index ce0da48a4e0..f4d5059b620 100644 ---- a/src/sage/plot/plot3d/implicit_surface.pyx -+++ b/src/sage/plot/plot3d/implicit_surface.pyx -@@ -468,6 +468,7 @@ cdef class MarchingCubesTriangles(MarchingCubes): - sage: cube_marcher.y_vertices.tolist() - [[[<1.0, 0.5, 0.0>, None]], [[None, None]]] - sage: cube_marcher.x_vertices.any() # This shouldn't affect the X vertices. -+ ... - """ - (self.y_vertices, self.y_vertices_swapped) = \ - (self.y_vertices_swapped, self.y_vertices) -@@ -574,6 +575,7 @@ cdef class MarchingCubesTriangles(MarchingCubes): - sage: cube_marcher.x_vertices.tolist() - [[None, None], [None, <1.5, 1.0, 1.0>]] - sage: cube_marcher.y_vertices.any() or cube_marcher.z_vertices.any() # This shouldn't affect the Y or Z vertices. -+ ... - """ - cdef bint has_prev = (_prev is not None) - cdef bint has_next = (_next is not None) -diff --git a/src/sage/plot/scatter_plot.py b/src/sage/plot/scatter_plot.py -index 4ad418f040b..781854d372c 100644 ---- a/src/sage/plot/scatter_plot.py -+++ b/src/sage/plot/scatter_plot.py -@@ -63,9 +63,9 @@ def get_minmax_data(self): - sage: s = scatter_plot([[0,1],[2,4],[3.2,6]]) - sage: d = s.get_minmax_data() - sage: d['xmin'] -- 0.0 -+ ...0.0... - sage: d['ymin'] -- 1.0 -+ ...1.0... - """ - return {'xmin': self.xdata.min(), - 'xmax': self.xdata.max(), -diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py -index 663d3aee70b..d2cb11088c7 100644 ---- a/src/sage/plot/streamline_plot.py -+++ b/src/sage/plot/streamline_plot.py -@@ -71,6 +71,9 @@ def get_minmax_data(self): - EXAMPLES:: - - 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") - 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/probability/probability_distribution.pyx b/src/sage/probability/probability_distribution.pyx -index e2c71af9c25..59ba4a95ab6 100644 ---- a/src/sage/probability/probability_distribution.pyx -+++ b/src/sage/probability/probability_distribution.pyx -@@ -140,6 +140,9 @@ cdef class ProbabilityDistribution: - 1.8, - 2.0] - """ -+ import numpy as np -+ if int(np.version.short_version[0]) > 1: -+ np.set_printoptions(legacy="1.25") - import pylab - ell = [float(self.get_random_element()) for _ in range(num_samples)] - S = pylab.hist(ell, bins, density=True) -diff --git a/src/sage/rings/complex_double.pyx b/src/sage/rings/complex_double.pyx -index c59a2b46d6f..b4dddebb4dc 100644 ---- a/src/sage/rings/complex_double.pyx -+++ b/src/sage/rings/complex_double.pyx -@@ -2558,10 +2558,10 @@ cdef class ComplexToCDF(Morphism): - - sage: # needs numpy - sage: import numpy -- sage: f = CDF.coerce_map_from(numpy.complex_) -- sage: f(numpy.complex_(I)) -+ sage: f = CDF.coerce_map_from(numpy.complex128) -+ sage: f(numpy.complex128(I)) - 1.0*I -- sage: f(numpy.complex_(I)).parent() -+ sage: f(numpy.complex128(I)).parent() - Complex Double Field - """ - def __init__(self, R): -@@ -2578,7 +2578,7 @@ cdef class ComplexToCDF(Morphism): - EXAMPLES:: - - sage: import numpy # needs numpy -- sage: CDF(numpy.complex_(I)) # indirect doctest # needs numpy -+ sage: CDF(numpy.complex128(I)) # indirect doctest # needs numpy - 1.0*I - """ - cdef ComplexDoubleElement z = ComplexDoubleElement.__new__(ComplexDoubleElement) -@@ -2592,7 +2592,7 @@ cdef class ComplexToCDF(Morphism): - EXAMPLES:: - - sage: import numpy # needs numpy -- sage: f = sage.rings.complex_double.ComplexToCDF(numpy.complex_) # needs numpy -+ sage: f = sage.rings.complex_double.ComplexToCDF(numpy.complex128) # needs numpy - sage: f._repr_type() # needs numpy - 'Native' - """ -diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx -index b4a1fa5039b..38c30f7627b 100644 ---- a/src/sage/rings/integer.pyx -+++ b/src/sage/rings/integer.pyx -@@ -593,6 +593,8 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): - Test comparisons with numpy types (see :issue:`13386` and :issue:`18076`):: - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: 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/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx -index dcf2af7cdf2..c87eccd44f1 100644 ---- a/src/sage/rings/polynomial/polynomial_element.pyx -+++ b/src/sage/rings/polynomial/polynomial_element.pyx -@@ -8851,7 +8851,7 @@ cdef class Polynomial(CommutativePolynomial): - 'you expect.') - - import numpy -- from numpy.linalg.linalg import LinAlgError -+ from numpy.linalg import LinAlgError - from sage.rings.complex_double import CDF - - numpy_dtype = ('complex' if input_complex else 'double') -diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx -index 95b472e912c..76fbfedab95 100644 ---- a/src/sage/rings/real_mpfi.pyx -+++ b/src/sage/rings/real_mpfi.pyx -@@ -231,6 +231,8 @@ specified if given a non-interval and an interval:: - 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 - 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 8f240627e77..70ce616f92f 100644 ---- a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -+++ b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -@@ -77,6 +77,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: 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() -@@ -295,6 +297,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: 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 -@@ -317,6 +321,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: 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 -@@ -370,6 +376,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - - sage: data = np.zeros((20, 20)) -@@ -520,6 +528,8 @@ cdef class PeriodicRegion: - TESTS:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: 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 b2e6b301bf7..6937f6cb410 100644 ---- a/src/sage/stats/basic_stats.py -+++ b/src/sage/stats/basic_stats.py -@@ -227,6 +227,8 @@ 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") - sage: x = numpy.array([1,2,3,4,5]) - sage: std(x, bias=False) - 1.5811388300841898 -@@ -304,6 +306,8 @@ def variance(v, bias=False): - sage: variance([RIF(1.0103, 1.0103), RIF(2)]) - 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 - 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/stats/time_series.pyx b/src/sage/stats/time_series.pyx -index 2e22ec45c69..23adae84fb4 100644 ---- a/src/sage/stats/time_series.pyx -+++ b/src/sage/stats/time_series.pyx -@@ -1718,6 +1718,8 @@ cdef class TimeSeries: - if len(v0) == 1: - return v1[0]/v0[0] - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - coeffs = numpy.polyfit(v0,v1,1) - return coeffs[0] - -diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx -index dfbd5ff82fa..955a256e9b4 100644 ---- a/src/sage/structure/coerce.pyx -+++ b/src/sage/structure/coerce.pyx -@@ -520,6 +520,8 @@ cdef class CoercionModel: - Check that :issue:`8426` is fixed (see also :issue:`18076`):: - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: 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 2cb2f09c715..cd89ad2a256 100644 ---- a/src/sage/symbolic/function.pyx -+++ b/src/sage/symbolic/function.pyx -@@ -964,6 +964,9 @@ cdef class BuiltinFunction(Function): - mpc(real='0.83373002513114902', imag='-0.98889770576286506') - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ - sage: sin(numpy.int32(0)) # needs numpy - 0.0 - sage: type(_) # needs numpy -diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx -index 501b0920898..5b007d9e5fd 100644 ---- a/src/sage/symbolic/ring.pyx -+++ b/src/sage/symbolic/ring.pyx -@@ -1162,6 +1162,8 @@ cdef class NumpyToSRMorphism(Morphism): - We check that :issue:`8949` and :issue:`9769` are fixed (see also :issue:`18076`):: - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: 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/patches/38344-ecm_7.0.6.patch b/srcpkgs/sagemath/patches/38344-ecm_7.0.6.patch deleted file mode 100644 index db0ae9030623b6..00000000000000 --- a/srcpkgs/sagemath/patches/38344-ecm_7.0.6.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/src/sage/interfaces/ecm.py b/src/sage/interfaces/ecm.py -index 99287dec718..98011970404 100644 ---- a/src/sage/interfaces/ecm.py -+++ b/src/sage/interfaces/ecm.py -@@ -508,7 +508,6 @@ def _find_factor(self, n, factor_digits, B1, **kwds): - """ - n = self._validate(n) - kwds.setdefault('c', 1000000000) -- kwds.setdefault('I', 1) - if factor_digits is not None: - B1 = self.recommended_B1(factor_digits) - kwds['one'] = True -diff --git a/src/sage/libs/libecm.pyx b/src/sage/libs/libecm.pyx -index 886a9b816e4..83fb7adaf8d 100644 ---- a/src/sage/libs/libecm.pyx -+++ b/src/sage/libs/libecm.pyx -@@ -149,11 +149,13 @@ def ecmfactor(number, double B1, verbose=False, sigma=0): - Some special cases:: - - sage: ecmfactor(1, 100) -- (True, 1, ...) -+ Traceback (most recent call last): -+ ... -+ ValueError: Input number (1) must be greater than 1 - sage: ecmfactor(0, 100) - Traceback (most recent call last): - ... -- ValueError: Input number (0) must be positive -+ ValueError: Input number (0) must be greater than 1 - """ - cdef mpz_t n, f - cdef int res -@@ -164,8 +166,8 @@ def ecmfactor(number, double B1, verbose=False, sigma=0): - sage_int_number = Integer(number) - sage_int_sigma = Integer(sigma) - -- if number <= 0: -- raise ValueError("Input number (%s) must be positive"%number) -+ if number <= 1: -+ raise ValueError("Input number (%s) must be greater than 1"%number) - - if verbose: - print("Performing one curve with B1=%1.0f" % B1) diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index 28162dff8a38e1..5cab228f286365 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -19,7 +19,7 @@ get_pr() { echo "curl -sL \"$url\" | filterdiff ... > \"$pr-$desc.patch\"" if [ -z "$dry" ]; then curl -sL "$url" | - filterdiff -p1 -x src/setup.py -x build/* -x src/doc/* | + filterdiff -p1 -x src/setup.py -x environment* -x src/environment* -x build/* -x src/doc/* | cat > "$pr-$desc.patch" fi } @@ -29,8 +29,6 @@ cd $(dirname "$0") get_pr 36641 "sympy 1.13" get_pr 37884 "gap 4.13.1" -get_pr 38250 "numpy 2.0" -get_pr 38344 "ecm 7.0.6" #get_pr 37645 "fix doctest" #get_pr 37885 "cython warnings" diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index b116e62bc67a5a..f5e1d8c68cfcbe 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,7 +1,7 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.4 -revision=3 +version=10.5.beta2 +revision=1 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} build_style=python3-pep517 @@ -32,7 +32,7 @@ license="GPL-2.0-or-later" homepage="https://www.sagemath.org/" changelog="https://github.com/sagemath/sage/releases" distfiles="${PYPI_SITE}/s/sagemath-standard/sagemath_standard-${_pypi_version}.tar.gz" -checksum=f6579e85f33bd9bb6e9b991bfc4c49dab1e649858ed9ee41c7cec75cb92d4c62 +checksum=0fe0c82dd6959951fc07d55737d270290f64947e183a403ca25709e21b751dee nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here From de0157b766efbd205f9f0a53294951959bd11015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Wed, 14 Aug 2024 00:12:02 -0300 Subject: [PATCH 3/4] sagemath: enable all cython warnings --- srcpkgs/sagemath/patches/37885-cython_warnings.patch | 12 ++++++++++++ srcpkgs/sagemath/patches/get_patches | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/sagemath/patches/37885-cython_warnings.patch diff --git a/srcpkgs/sagemath/patches/37885-cython_warnings.patch b/srcpkgs/sagemath/patches/37885-cython_warnings.patch new file mode 100644 index 00000000000000..fa4b648cfc1577 --- /dev/null +++ b/srcpkgs/sagemath/patches/37885-cython_warnings.patch @@ -0,0 +1,12 @@ +diff --git a/src/sage_setup/command/sage_build_cython.py b/src/sage_setup/command/sage_build_cython.py +index f4b1357c543..3435c196d49 100644 +--- a/src/sage_setup/command/sage_build_cython.py ++++ b/src/sage_setup/command/sage_build_cython.py +@@ -226,6 +226,7 @@ def run(self): + compiler_directives=self.cython_directives, + compile_time_env=self.compile_time_env, + create_extension=self.create_extension, ++ show_all_warnings=True, + # Debugging + gdb_debug=self.debug, + output_dir=os.path.join(self.build_lib, "sage"), diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index 5cab228f286365..c182576ea553cd 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -31,4 +31,4 @@ get_pr 36641 "sympy 1.13" get_pr 37884 "gap 4.13.1" #get_pr 37645 "fix doctest" -#get_pr 37885 "cython warnings" +get_pr 37885 "cython warnings" From 377d7d959c52b13b6873c45b7350aecd172fffa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 20 Aug 2024 17:56:06 -0300 Subject: [PATCH 4/4] sagemath: patch for numpy 2.1 --- srcpkgs/sagemath/patches/numpy_2.1a.patch | 8 +-- srcpkgs/sagemath/patches/numpy_2.1b.patch | 70 +++++++++++------------ 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/srcpkgs/sagemath/patches/numpy_2.1a.patch b/srcpkgs/sagemath/patches/numpy_2.1a.patch index 30e2de99d84536..493c75e2f8f8e0 100644 --- a/srcpkgs/sagemath/patches/numpy_2.1a.patch +++ b/srcpkgs/sagemath/patches/numpy_2.1a.patch @@ -1,14 +1,14 @@ -commit 241dc39bd0ba1c056f88bee46a0345d59093eaff +commit d755b32cbed462abf01a1cd782ba57cb92fbf713 Author: Gonzalo Tornaría 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 +index 3edb9ead54d..2c76fd1e557 100644 --- a/src/sage/matrix/matrix1.pyx +++ b/src/sage/matrix/matrix1.pyx -@@ -671,7 +671,7 @@ cdef class Matrix(Matrix0): +@@ -670,7 +670,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) @@ -17,7 +17,7 @@ index c38df5412f0..f587cef651a 100644 """ Return the Numpy matrix associated to this matrix. -@@ -732,7 +732,7 @@ cdef class Matrix(Matrix0): +@@ -731,7 +731,7 @@ cdef class Matrix(Matrix0): (3, 4) """ import numpy diff --git a/srcpkgs/sagemath/patches/numpy_2.1b.patch b/srcpkgs/sagemath/patches/numpy_2.1b.patch index b77e28361d2e74..8dc0eec2b5a9d8 100644 --- a/srcpkgs/sagemath/patches/numpy_2.1b.patch +++ b/srcpkgs/sagemath/patches/numpy_2.1b.patch @@ -1,11 +1,11 @@ -commit 8b32fdb87725c1d67ffb51dadec1c331c7c35f3c +commit 8260d18c3cf8e356db3d95fc46f6e68f75b453fd Author: Gonzalo Tornaría 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 +index 74a14fa1ecd..82e6c7eb3c8 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): @@ -18,7 +18,7 @@ index b3ebd206cd2..48866824224 100644 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 +index 308171af3cd..6f66624ef87 100644 --- a/src/sage/functions/special.py +++ b/src/sage/functions/special.py @@ -219,7 +219,7 @@ class SphericalHarmonic(BuiltinFunction): @@ -31,10 +31,10 @@ index 2a03bb68f67..30b56722e66 100644 (0.3454941494713355-4.231083042742082e-17j) diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py -index 7ae8ca4966f..4cba22efdba 100644 +index b3e42a6a6a2..13ffa4d1789 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", +@@ -381,7 +381,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: @@ -44,7 +44,7 @@ index 7ae8ca4966f..4cba22efdba 100644 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 +index 02442f90ba4..1fe3f0b051a 100644 --- a/src/sage/plot/arrow.py +++ b/src/sage/plot/arrow.py @@ -55,7 +55,7 @@ class CurveArrow(GraphicPrimitive): @@ -57,10 +57,10 @@ index 23e2517ca56..7375dcd5d1c 100644 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 +index d2f70b44526..2eaacc6879e 100644 --- a/src/sage/plot/multigraphics.py +++ b/src/sage/plot/multigraphics.py -@@ -786,7 +786,7 @@ class MultiGraphics(WithEqualityById, SageObject): +@@ -766,7 +766,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: @@ -68,8 +68,8 @@ index 6be448f1e04..004594b77c4 100644 + ....: _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): + """ +@@ -1269,7 +1269,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: @@ -79,10 +79,10 @@ index 6be448f1e04..004594b77c4 100644 (0.025045451349937315, 0.03415488992713045, diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py -index d2cb11088c7..6d88517cc15 100644 +index b69a05b37bf..25e404bfc7d 100644 --- a/src/sage/plot/streamline_plot.py +++ b/src/sage/plot/streamline_plot.py -@@ -73,7 +73,7 @@ class StreamlinePlot(GraphicPrimitive): +@@ -72,7 +72,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: @@ -92,20 +92,20 @@ index d2cb11088c7..6d88517cc15 100644 sage: d['xmin'] 10.0 diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx -index 38c30f7627b..cfb8a5ff5f7 100644 +index 11811b9587f..8ce0f7f2683 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 +@@ -595,7 +595,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): + 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: numpy.int8('12') == 12 True - sage: 12 == numpy.int8('12') # needs numpy + sage: 12 == numpy.int8('12') diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx -index 76fbfedab95..57de30c9d18 100644 +index 11953a50ab5..6aafcceed89 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -232,7 +232,7 @@ TESTS:: @@ -118,7 +118,7 @@ index 76fbfedab95..57de30c9d18 100644 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 +index 40b92ab23eb..3838bcccb8a 100755 --- 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: @@ -130,7 +130,7 @@ index 70ce616f92f..f604c6d3785 100644 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: +@@ -296,7 +296,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -139,7 +139,7 @@ index 70ce616f92f..f604c6d3785 100644 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: +@@ -320,7 +320,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -148,7 +148,7 @@ index 70ce616f92f..f604c6d3785 100644 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: +@@ -375,7 +375,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -157,7 +157,7 @@ index 70ce616f92f..f604c6d3785 100644 sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion sage: data = np.zeros((20, 20)) -@@ -529,7 +529,7 @@ cdef class PeriodicRegion: +@@ -528,7 +528,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -167,10 +167,10 @@ index 70ce616f92f..f604c6d3785 100644 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 +index 47d890cf0ab..ba7f0cdb0f9 100644 --- a/src/sage/stats/basic_stats.py +++ b/src/sage/stats/basic_stats.py -@@ -228,7 +228,7 @@ def std(v, bias=False): +@@ -222,7 +222,7 @@ def std(v, bias=False): sage: # needs numpy sage: import numpy sage: if int(numpy.version.short_version[0]) > 1: @@ -179,7 +179,7 @@ index 6937f6cb410..fb296e00fb6 100644 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): +@@ -299,7 +299,7 @@ def variance(v, bias=False): 0.4897530450000000? sage: import numpy # needs numpy sage: if int(numpy.version.short_version[0]) > 1: # needs numpy @@ -189,7 +189,7 @@ index 6937f6cb410..fb296e00fb6 100644 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 +index cc15eff82e9..e32e7fd28b3 100644 --- a/src/sage/structure/coerce.pyx +++ b/src/sage/structure/coerce.pyx @@ -521,7 +521,7 @@ cdef class CoercionModel: @@ -202,10 +202,10 @@ index 955a256e9b4..e5ed6160b79 100644 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 +index 362d01ea297..92bce28b032 100644 --- a/src/sage/symbolic/function.pyx +++ b/src/sage/symbolic/function.pyx -@@ -965,7 +965,7 @@ cdef class BuiltinFunction(Function): +@@ -962,7 +962,7 @@ cdef class BuiltinFunction(Function): sage: import numpy # needs numpy sage: if int(numpy.version.short_version[0]) > 1: # needs numpy @@ -215,10 +215,10 @@ index cd89ad2a256..6fdf6d8ef23 100644 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 +index 32afe8d3a62..63734e68f63 100644 --- a/src/sage/symbolic/ring.pyx +++ b/src/sage/symbolic/ring.pyx -@@ -1163,7 +1163,7 @@ cdef class NumpyToSRMorphism(Morphism): +@@ -1154,7 +1154,7 @@ cdef class NumpyToSRMorphism(Morphism): sage: import numpy # needs numpy sage: if int(numpy.version.short_version[0]) > 1: # needs numpy