Compare commits

..

No commits in common. "rawhide" and "f23" have entirely different histories.
rawhide ... f23

10 changed files with 968 additions and 570 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
/sympy-*.tar.gz
/sympy-0.7.6.tar.gz
/sympy-0.7.6.1.tar.gz

View File

@ -0,0 +1,45 @@
From 1be64700c1063eff2b2747ce63ca03eac797b4a4 Mon Sep 17 00:00:00 2001
From: Aaditya M Nair <aadityanair6494@gmail.com>
Date: Sun, 1 Feb 2015 01:48:11 +0530
Subject: [PATCH] Fixed incompatiblity with latest version of pyglet
(1.2alpha1)
In earlier version of pyglet, `c_float` was defined in `pyglet.gl`
but in the latest version of pyglet (1.2alpha1) it is defined in
`pyglet.gl.gl`. This commit addresses this issue by adding a
try-except block that imports `cfloat` from this module.
---
sympy/plotting/pygletplot/plot_rotation.py | 5 +++++
sympy/plotting/pygletplot/util.py | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/sympy/plotting/pygletplot/plot_rotation.py b/sympy/plotting/pygletplot/plot_rotation.py
index dbbaa42..6dbf972 100644
--- a/sympy/plotting/pygletplot/plot_rotation.py
+++ b/sympy/plotting/pygletplot/plot_rotation.py
@@ -1,5 +1,10 @@
from __future__ import print_function, division
+try:
+ from pyglet.gl.gl import c_float
+except ImportError:
+ pass
+
from pyglet.gl import *
from math import sqrt as _sqrt, acos as _acos
diff --git a/sympy/plotting/pygletplot/util.py b/sympy/plotting/pygletplot/util.py
index 49574b8..710f008 100644
--- a/sympy/plotting/pygletplot/util.py
+++ b/sympy/plotting/pygletplot/util.py
@@ -1,5 +1,10 @@
from __future__ import print_function, division
+try:
+ from pyglet.gl.gl import c_float
+except ImportError:
+ pass
+
from pyglet.gl import *
from sympy.core import S
from sympy.core.compatibility import xrange

View File

@ -1,8 +0,0 @@
# sympy
SymPy is a Python library for symbolic mathematics. It aims to become a
full-featured computer algebra system (CAS) while keeping the code as
simple as possible in order to be comprehensible and easily extensible.
SymPy is written entirely in Python.
See [the home page](https://www.sympy.org/) for more information.

View File

@ -1 +1 @@
SHA512 (sympy-1.12.tar.gz) = 96a89b88f6912d70c56f5bd1903dd3c518963118ff25d033cdcb7da2f260b8ee209d3ab4a4394dd2b5dc0b4585b71ccd55d55c8e5c6e28024cccbedf07ee4360
92e5b8e2f51c41ecac47b3458da1f505 sympy-0.7.6.1.tar.gz

20
stripmpmath.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# Script for stripping traces of the bundled mpmath library
# 2011-10-12 Jussi Lehtola
# Loop
for i in `find . -name \*.py`; do
if [[ " `grep sympy.mpmath $i`" != " " ]]; then
echo $i
cp -a $i $i.mpmath
sed -i 's|sympy.mpmath|mpmath|g' $i
fi
if [[ " `grep 'from sympy import mpmath' $i`" != " " ]]; then
if [ ! -f $i.mpmath ]; then
echo $i
cp -a $i $i.mpmath
fi
sed -i 's|from sympy import mpmath|import mpmath|g' $i
fi
done

View File

@ -0,0 +1,776 @@
--- ./examples/advanced/autowrap_ufuncify.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./examples/advanced/autowrap_ufuncify.py 2014-12-04 10:30:58.017350207 -0700
@@ -25,7 +25,7 @@ np = import_module('numpy')
if not np:
sys.exit("Cannot import numpy. Exiting.")
-import sympy.mpmath as mpmath
+import mpmath
from sympy.utilities.autowrap import ufuncify
from sympy.utilities.lambdify import implemented_function
from sympy import symbols, legendre, Plot, pprint
--- ./examples/advanced/pidigits.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./examples/advanced/pidigits.py 2014-12-04 10:30:58.017350207 -0700
@@ -6,8 +6,8 @@ Example shows arbitrary precision using
computation of the digits of pi.
"""
-from sympy.mpmath import libmp, pi
-from sympy.mpmath import functions as mpf_funs
+from mpmath import libmp, pi
+from mpmath import functions as mpf_funs
import math
from time import clock
--- ./setup.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./setup.py 2014-12-04 10:30:58.017350207 -0700
@@ -73,11 +73,6 @@ modules = [
'sympy.matrices',
'sympy.matrices.benchmarks',
'sympy.matrices.expressions',
- 'sympy.mpmath',
- 'sympy.mpmath.calculus',
- 'sympy.mpmath.functions',
- 'sympy.mpmath.libmp',
- 'sympy.mpmath.matrices',
'sympy.ntheory',
'sympy.parsing',
'sympy.physics',
@@ -246,7 +241,6 @@ tests = [
'sympy.logic.tests',
'sympy.matrices.expressions.tests',
'sympy.matrices.tests',
- 'sympy.mpmath.tests',
'sympy.ntheory.tests',
'sympy.parsing.tests',
'sympy.physics.hep.tests',
--- ./sympy/combinatorics/permutations.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/combinatorics/permutations.py 2014-12-04 10:30:58.018350206 -0700
@@ -9,7 +9,7 @@ from sympy.utilities.iterables import (f
has_dups, runs)
from sympy.polys.polytools import lcm
from sympy.matrices import zeros
-from sympy.mpmath.libmp.libintmath import ifac
+from mpmath.libmp.libintmath import ifac
def _af_rmul(a, b):
--- ./sympy/core/evalf.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/evalf.py 2014-12-04 14:05:59.235169407 -0700
@@ -6,20 +6,20 @@ from __future__ import print_function, d
import math
-import sympy.mpmath.libmp as libmp
-from sympy.mpmath import (
+import mpmath.libmp as libmp
+from mpmath import (
make_mpc, make_mpf, mp, mpc, mpf, nsum, quadts, quadosc, workprec)
-from sympy.mpmath import inf as mpmath_inf
-from sympy.mpmath.libmp import (from_int, from_man_exp, from_rational, fhalf,
+from mpmath import inf as mpmath_inf
+from mpmath.libmp import (from_int, from_man_exp, from_rational, fhalf,
fnan, fnone, fone, fzero, mpf_abs, mpf_add,
mpf_atan, mpf_atan2, mpf_cmp, mpf_cos, mpf_e, mpf_exp, mpf_log, mpf_lt,
mpf_mul, mpf_neg, mpf_pi, mpf_pow, mpf_pow_int, mpf_shift, mpf_sin,
mpf_sqrt, normalize, round_nearest, to_int, to_str)
-from sympy.mpmath.libmp import bitcount as mpmath_bitcount
-from sympy.mpmath.libmp.backend import MPZ
-from sympy.mpmath.libmp.libmpc import _infs_nan
-from sympy.mpmath.libmp.libmpf import dps_to_prec
-from sympy.mpmath.libmp.gammazeta import mpf_bernoulli
+from mpmath.libmp import bitcount as mpmath_bitcount
+from mpmath.libmp.backend import MPZ
+from mpmath.libmp.libmpc import _infs_nan
+from mpmath.libmp.libmpf import dps_to_prec
+from mpmath.libmp.gammazeta import mpf_bernoulli
from .compatibility import SYMPY_INTS
from .sympify import sympify
--- ./sympy/core/expr.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/expr.py 2014-12-04 11:07:54.359742059 -0700
@@ -8,7 +8,7 @@ from .evalf import EvalfMixin, pure_comp
from .decorators import _sympifyit, call_highest_priority
from .cache import cacheit
from .compatibility import reduce, as_int, default_sort_key, xrange
-from sympy.mpmath.libmp import mpf_log, prec_to_dps
+from mpmath.libmp import mpf_log, prec_to_dps
from collections import defaultdict
@@ -384,7 +384,7 @@ class Expr(Basic, EvalfMixin):
# increase the precision up to the default maximum
# precision to see if we can get any significance
- from sympy.mpmath.libmp.libintmath import giant_steps
+ from mpmath.libmp.libintmath import giant_steps
from sympy.core.evalf import DEFAULT_MAXPREC as target
# evaluate
--- ./sympy/core/function.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/function.py 2014-12-04 10:30:58.020350202 -0700
@@ -51,8 +51,8 @@ from sympy.utilities import default_sort
from sympy.utilities.iterables import uniq
from sympy.core.evaluate import global_evaluate
-from sympy import mpmath
-import sympy.mpmath.libmp as mlib
+import mpmath
+import mpmath.libmp as mlib
import inspect
@@ -460,7 +460,7 @@ class Function(Application, Expr):
try:
args = [arg._to_mpmath(prec + 5) for arg in self.args]
def bad(m):
- from sympy.mpmath import mpf, mpc
+ from mpmath import mpf, mpc
# the precision of an mpf value is the last element
# if that is 1 (and m[1] is not 1 which would indicate a
# power of 2), then the eval failed; so check that none of
@@ -1223,7 +1223,7 @@ class Derivative(Expr):
When we can represent derivatives at a point, this should be folded
into the normal evalf. For now, we need a special method.
"""
- from sympy import mpmath
+ import mpmath
from sympy.core.expr import Expr
if len(self.free_symbols) != 1 or len(self.variables) != 1:
raise NotImplementedError('partials and higher order derivatives')
--- ./sympy/core/numbers.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/numbers.py 2014-12-04 10:30:58.021350201 -0700
@@ -16,11 +16,11 @@ from .cache import cacheit, clear_cache
from sympy.core.compatibility import (
as_int, integer_types, long, string_types, with_metaclass, HAS_GMPY,
SYMPY_INTS)
-import sympy.mpmath as mpmath
-import sympy.mpmath.libmp as mlib
-from sympy.mpmath.libmp import mpf_pow, mpf_pi, mpf_e, phi_fixed
-from sympy.mpmath.ctx_mp import mpnumeric
-from sympy.mpmath.libmp.libmpf import (
+import mpmath
+import mpmath.libmp as mlib
+from mpmath.libmp import mpf_pow, mpf_pi, mpf_e, phi_fixed
+from mpmath.ctx_mp import mpnumeric
+from mpmath.libmp.libmpf import (
finf as _mpf_inf, fninf as _mpf_ninf,
fnan as _mpf_nan, fzero as _mpf_zero, _normalize as mpf_normalize,
prec_to_dps)
--- ./sympy/core/power.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/power.py 2014-12-04 10:30:58.021350201 -0700
@@ -14,7 +14,7 @@ from .logic import fuzzy_bool
from .compatibility import as_int, xrange
from .evaluate import global_evaluate
-from sympy.mpmath.libmp import sqrtrem as mpmath_sqrtrem
+from mpmath.libmp import sqrtrem as mpmath_sqrtrem
from sympy.utilities.iterables import sift
--- ./sympy/core/tests/test_evalf.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/tests/test_evalf.py 2014-12-04 10:31:03.063341891 -0700
@@ -4,9 +4,9 @@ from sympy import (Add, ceiling, cos, E,
Sum, Product, Integral)
from sympy.core.evalf import complex_accuracy, PrecisionExhausted, scaled_zero
from sympy.core.compatibility import long
-from sympy.mpmath import inf, ninf, nan
+from mpmath import inf, ninf, nan
from sympy.abc import n, x, y
-from sympy.mpmath.libmp.libmpf import from_float
+from mpmath.libmp.libmpf import from_float
from sympy.utilities.pytest import raises, XFAIL
--- ./sympy/core/tests/test_numbers.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/tests/test_numbers.py 2014-12-04 10:56:49.005878896 -0700
@@ -6,9 +6,9 @@ from sympy.core.basic import _aresame
from sympy.core.compatibility import long, u
from sympy.core.power import integer_nthroot
from sympy.core.numbers import igcd, ilcm, igcdex, seterr, _intcache, mpf_norm
-from sympy.mpmath import mpf
+from mpmath import mpf
from sympy.utilities.pytest import XFAIL, slow, raises
-from sympy import mpmath
+import mpmath
def test_integers_cache():
@@ -1355,8 +1355,8 @@ def test_issue_4172():
@XFAIL
def test_mpmath_issues():
- from sympy.mpmath.libmp.libmpf import _normalize
- import sympy.mpmath.libmp as mlib
+ from mpmath.libmp.libmpf import _normalize
+ import mpmath.libmp as mlib
rnd = mlib.round_nearest
mpf = (0, long(0), -123, -1, 53, rnd) # nan
assert _normalize(mpf, 53) != (0, long(0), 0, 0)
@@ -1365,7 +1365,7 @@ def test_mpmath_issues():
mpf = (1, long(0), -789, -3, 53, rnd) # -inf
assert _normalize(mpf, 53) != (0, long(0), 0, 0)
- from sympy.mpmath.libmp.libmpf import fnan
+ from mpmath.libmp.libmpf import fnan
assert mlib.mpf_eq(fnan, fnan)
@@ -1396,7 +1396,7 @@ def test_int_NumberSymbols():
def test_issue_6640():
- from sympy.mpmath.libmp.libmpf import (
+ from mpmath.libmp.libmpf import (
_normalize as mpf_normalize, finf, fninf, fzero)
# fnan is not included because Float no longer returns fnan,
# but otherwise, the same sort of test could apply
--- ./sympy/core/tests/test_sympify.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/tests/test_sympify.py 2014-12-04 10:31:04.375339729 -0700
@@ -11,7 +11,7 @@ from sympy.functions.combinatorial.facto
from sympy.abc import _clash, _clash1, _clash2
from sympy.core.compatibility import exec_, HAS_GMPY
-from sympy import mpmath
+import mpmath
def test_issue_3538():
--- ./sympy/core/tests/test_wester.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/core/tests/test_wester.py 2014-12-04 10:31:04.377339726 -0700
@@ -6,6 +6,7 @@ See also http://math.unm.edu/~wester/cas
each tested system.
"""
+import mpmath
from sympy import (Rational, symbols, factorial, sqrt, log, exp, oo, zoo,
product, binomial, rf, pi, gamma, igcd, factorint, radsimp, combsimp,
npartitions, totient, primerange, factor, simplify, gcd, resultant, expand,
@@ -13,7 +14,7 @@ from sympy import (Rational, symbols, fa
bernoulli, hyper, hyperexpand, besselj, asin, assoc_legendre, Function, re,
im, DiracDelta, chebyshevt, legendre_poly, polylog, series, O,
atan, sinh, cosh, tanh, floor, ceiling, solve, asinh, acot, csc, sec,
- LambertW, N, apart, sqrtdenest, factorial2, powdenest, Mul, S, mpmath, ZZ,
+ LambertW, N, apart, sqrtdenest, factorial2, powdenest, Mul, S, ZZ,
Poly, expand_func, E, Q, And, Or, Ne, Eq, Le, Lt,
ask, refine, AlgebraicNumber, continued_fraction_iterator as cf_i,
continued_fraction_periodic as cf_p, continued_fraction_convergents as cf_c,
@@ -26,7 +27,7 @@ from sympy.functions.special.zeta_functi
from sympy.integrals.deltafunctions import deltaintegrate
from sympy.utilities.pytest import XFAIL, slow, SKIP, skip, ON_TRAVIS
from sympy.utilities.iterables import partitions
-from sympy.mpmath import mpi, mpc
+from mpmath import mpi, mpc
from sympy.matrices import Matrix, GramSchmidt, eye
from sympy.matrices.expressions.blockmatrix import BlockMatrix, block_collapse
from sympy.matrices.expressions import MatrixSymbol, ZeroMatrix
--- ./sympy/external/tests/test_numpy.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/external/tests/test_numpy.py 2014-12-04 10:31:04.378339724 -0700
@@ -21,7 +21,7 @@ from sympy import (Rational, Symbol, lis
Matrix, lambdify, symarray, symbols, Integer)
import sympy
-from sympy import mpmath
+import mpmath
from sympy.abc import x, y, z
from sympy.utilities.decorator import conserve_mpmath_dps
--- ./sympy/functions/combinatorial/numbers.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/functions/combinatorial/numbers.py 2014-12-04 10:59:59.605872355 -0700
@@ -21,8 +21,8 @@ from sympy.functions.elementary.exponent
from sympy.functions.elementary.trigonometric import sin, cos, cot
from sympy.functions.combinatorial.factorials import factorial
-from sympy.mpmath import bernfrac, workprec
-from sympy.mpmath.libmp import ifib as _ifib
+from mpmath import bernfrac, workprec
+from mpmath.libmp import ifib as _ifib
def _product(a, b):
@@ -706,7 +706,7 @@ class euler(Function):
if m.is_odd:
return S.Zero
if m.is_Integer and m.is_nonnegative:
- from sympy.mpmath import mp
+ from mpmath import mp
m = m._to_mpmath(mp.prec)
res = mp.eulernum(m, exact=True)
return Integer(res)
@@ -725,7 +725,7 @@ class euler(Function):
m = self.args[0]
if m.is_Integer and m.is_nonnegative:
- from sympy.mpmath import mp
+ from mpmath import mp
from sympy import Expr
m = m._to_mpmath(prec)
with workprec(prec):
--- ./sympy/functions/special/bessel.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/functions/special/bessel.py 2014-12-04 11:01:02.478869466 -0700
@@ -706,8 +706,8 @@ def jn_zeros(n, k, method="sympy", dps=1
from math import pi
if method == "sympy":
- from sympy.mpmath import besseljzero
- from sympy.mpmath.libmp.libmpf import dps_to_prec
+ from mpmath import besseljzero
+ from mpmath.libmp.libmpf import dps_to_prec
from sympy import Expr
prec = dps_to_prec(dps)
return [Expr._from_mpmath(besseljzero(S(n + 0.5)._to_mpmath(prec),
@@ -1209,7 +1209,7 @@ class airyaiprime(AiryBase):
raise ArgumentIndexError(self, argindex)
def _eval_evalf(self, prec):
- from sympy.mpmath import mp, workprec
+ from mpmath import mp, workprec
from sympy import Expr
z = self.args[0]._to_mpmath(prec)
with workprec(prec):
@@ -1365,7 +1365,7 @@ class airybiprime(AiryBase):
raise ArgumentIndexError(self, argindex)
def _eval_evalf(self, prec):
- from sympy.mpmath import mp, workprec
+ from mpmath import mp, workprec
from sympy import Expr
z = self.args[0]._to_mpmath(prec)
with workprec(prec):
--- ./sympy/functions/special/error_functions.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/functions/special/error_functions.py 2014-12-04 10:31:04.380339721 -0700
@@ -1339,7 +1339,7 @@ class li(Function):
We can even compute Soldner's constant by the help of mpmath:
- >>> from sympy.mpmath import findroot
+ >>> from mpmath import findroot
>>> findroot(li, 2)
1.45136923488338
--- ./sympy/functions/special/gamma_functions.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/functions/special/gamma_functions.py 2014-12-04 14:05:59.241169397 -0700
@@ -296,7 +296,7 @@ class lowergamma(Function):
return (cls(a + 1, x) + x**a * C.exp(-x))/a
def _eval_evalf(self, prec):
- from sympy.mpmath import mp, workprec
+ from mpmath import mp, workprec
from sympy import Expr
a = self.args[0]._to_mpmath(prec)
z = self.args[1]._to_mpmath(prec)
@@ -395,7 +395,7 @@ class uppergamma(Function):
raise ArgumentIndexError(self, argindex)
def _eval_evalf(self, prec):
- from sympy.mpmath import mp, workprec
+ from mpmath import mp, workprec
from sympy import Expr
a = self.args[0]._to_mpmath(prec)
z = self.args[1]._to_mpmath(prec)
--- ./sympy/functions/special/hyper.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/functions/special/hyper.py 2014-12-04 10:31:04.381339719 -0700
@@ -600,7 +600,8 @@ class meijerg(TupleParametersBase):
# (carefully so as not to loose the branch information), and evaluate
# G(z'**(1/r)) = G(z'**n) = G(z).
from sympy.functions import exp_polar, ceiling
- from sympy import mpmath, Expr
+ from sympy import Expr
+ import mpmath
z = self.argument
znum = self.argument._eval_evalf(prec)
if znum.has(exp_polar):
--- ./sympy/functions/special/spherical_harmonics.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/functions/special/spherical_harmonics.py 2014-12-04 14:05:59.242169395 -0700
@@ -219,7 +219,7 @@ class Ynm(Function):
# Note: works without this function by just calling
# mpmath for Legendre polynomials. But using
# the dedicated function directly is cleaner.
- from sympy.mpmath import mp, workprec
+ from mpmath import mp, workprec
from sympy import Expr
n = self.args[0]._to_mpmath(prec)
m = self.args[1]._to_mpmath(prec)
--- ./sympy/geometry/ellipse.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/geometry/ellipse.py 2014-12-04 10:31:04.383339716 -0700
@@ -24,7 +24,7 @@ from .entity import GeometryEntity
from .point import Point
from .line import LinearEntity, Line
from .util import _symbol, idiff
-from sympy.mpmath import findroot as nroot
+from mpmath import findroot as nroot
import random
--- ./sympy/liealgebras/weyl_group.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/liealgebras/weyl_group.py 2014-12-04 10:31:04.383339716 -0700
@@ -3,7 +3,7 @@
from sympy.core import Basic, Rational
from sympy.core.numbers import igcd
from .cartan_type import CartanType
-from sympy.mpmath import fac
+from mpmath import fac
from operator import itemgetter
from itertools import groupby
from sympy.matrices import Matrix, eye
--- ./sympy/matrices/matrices.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/matrices/matrices.py 2014-12-04 10:31:04.384339714 -0700
@@ -1238,7 +1238,7 @@ class MatrixBase(object):
"""Solve the linear system Ax = rhs for x where A = self.
This is for symbolic matrices, for real or complex ones use
- sympy.mpmath.lu_solve or sympy.mpmath.qr_solve.
+ mpmath.lu_solve or mpmath.qr_solve.
See Also
========
@@ -1615,7 +1615,7 @@ class MatrixBase(object):
to use QRsolve.
This is mainly for educational purposes and symbolic matrices, for real
- (or complex) matrices use sympy.mpmath.qr_solve.
+ (or complex) matrices use mpmath.qr_solve.
See Also
========
--- ./sympy/ntheory/partitions_.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/ntheory/partitions_.py 2014-12-04 10:31:04.384339714 -0700
@@ -1,6 +1,6 @@
from __future__ import print_function, division
-from sympy.mpmath.libmp import (fzero,
+from mpmath.libmp import (fzero,
from_man_exp, from_int, from_rational,
fone, fhalf, bitcount, to_int, to_str, mpf_mul, mpf_div, mpf_sub,
mpf_add, mpf_sqrt, mpf_pi, mpf_cosh_sinh, pi_fixed, mpf_cos)
--- ./sympy/physics/quantum/constants.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/physics/quantum/constants.py 2014-12-04 10:31:04.384339714 -0700
@@ -6,7 +6,7 @@ from sympy.core.numbers import NumberSym
from sympy.core.singleton import Singleton
from sympy.core.compatibility import u, with_metaclass
from sympy.printing.pretty.stringpict import prettyForm
-import sympy.mpmath.libmp as mlib
+import mpmath.libmp as mlib
#-----------------------------------------------------------------------------
# Constants
--- ./sympy/physics/quantum/qubit.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/physics/quantum/qubit.py 2014-12-04 10:31:04.385339712 -0700
@@ -24,7 +24,7 @@ from sympy.physics.quantum.represent imp
from sympy.physics.quantum.matrixutils import (
numpy_ndarray, scipy_sparse_matrix
)
-from sympy.mpmath.libmp.libintmath import bitcount
+from mpmath.libmp.libintmath import bitcount
__all__ = [
'Qubit',
--- ./sympy/polys/domains/groundtypes.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/domains/groundtypes.py 2014-12-04 10:31:04.385339712 -0700
@@ -69,7 +69,7 @@ else:
gmpy_qdiv = None
-import sympy.mpmath.libmp as mlib
+import mpmath.libmp as mlib
def python_sqrt(n):
--- ./sympy/polys/domains/mpelements.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/domains/mpelements.py 2014-12-04 10:31:04.385339712 -0700
@@ -4,11 +4,11 @@ from __future__ import print_function, d
from sympy.polys.domains.domainelement import DomainElement
-from sympy.mpmath.ctx_mp_python import PythonMPContext, _mpf, _mpc, _constant
-from sympy.mpmath.libmp import (MPZ_ONE, fzero, fone, finf, fninf, fnan,
+from mpmath.ctx_mp_python import PythonMPContext, _mpf, _mpc, _constant
+from mpmath.libmp import (MPZ_ONE, fzero, fone, finf, fninf, fnan,
round_nearest, mpf_mul, mpf_abs, mpf_lt, mpc_abs, repr_dps, int_types,
from_int, from_float, from_str, to_rational)
-from sympy.mpmath.rational import mpq
+from mpmath.rational import mpq
from sympy.utilities import public
--- ./sympy/polys/modulargcd.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/modulargcd.py 2014-12-04 10:31:04.386339711 -0700
@@ -7,7 +7,7 @@ from sympy.polys.polyerrors import Modul
from sympy.polys.domains import PolynomialRing
from sympy.core.compatibility import xrange
-from sympy.mpmath import sqrt
+from mpmath import sqrt
from sympy import Dummy
import random
--- ./sympy/polys/numberfields.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/numberfields.py 2014-12-04 10:31:04.386339711 -0700
@@ -47,7 +47,7 @@ from sympy.core.exprtools import Factors
from sympy.simplify.simplify import _mexpand, _is_sum_surds
from sympy.ntheory import sieve
from sympy.ntheory.factor_ import divisors
-from sympy.mpmath import pslq, mp
+from mpmath import pslq, mp
from sympy.core.compatibility import reduce
from sympy.core.compatibility import xrange
--- ./sympy/polys/polytools.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/polytools.py 2014-12-04 11:04:04.672827949 -0700
@@ -47,8 +47,8 @@ from sympy.polys.polyerrors import (
from sympy.utilities import group, sift, public
import sympy.polys
-import sympy.mpmath
-from sympy.mpmath.libmp.libhyper import NoConvergence
+import mpmath
+from mpmath.libmp.libhyper import NoConvergence
from sympy.polys.domains import FF, QQ, ZZ
from sympy.polys.constructor import construct_domain
@@ -3391,18 +3391,18 @@ class Poly(Expr):
coeffs = [coeff.evalf(n=n).as_real_imag()
for coeff in f.all_coeffs()]
try:
- coeffs = [sympy.mpmath.mpc(*coeff) for coeff in coeffs]
+ coeffs = [mpmath.mpc(*coeff) for coeff in coeffs]
except TypeError:
raise DomainError("Numerical domain expected, got %s" % \
f.rep.dom)
- dps = sympy.mpmath.mp.dps
- sympy.mpmath.mp.dps = n
+ dps = mpmath.mp.dps
+ mpmath.mp.dps = n
try:
# We need to add extra precision to guard against losing accuracy.
# 10 times the degree of the polynomial seems to work well.
- roots = sympy.mpmath.polyroots(coeffs, maxsteps=maxsteps,
+ roots = mpmath.polyroots(coeffs, maxsteps=maxsteps,
cleanup=cleanup, error=False, extraprec=f.degree()*10)
# Mpmath puts real roots first, then complex ones (as does all_roots)
@@ -3414,7 +3414,7 @@ class Poly(Expr):
'convergence to root failed; try n < %s or maxsteps > %s' % (
n, maxsteps))
finally:
- sympy.mpmath.mp.dps = dps
+ mpmath.mp.dps = dps
return roots
--- ./sympy/polys/ring_series.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/ring_series.py 2014-12-04 11:09:16.774704452 -0700
@@ -3,10 +3,10 @@
from sympy.polys.domains import QQ
from sympy.polys.rings import ring, PolyElement
from sympy.polys.monomials import monomial_min, monomial_mul
-from sympy.mpmath.libmp.libintmath import ifac
+from mpmath.libmp.libintmath import ifac
from sympy.core.numbers import Rational
from sympy.core.compatibility import as_int
-from sympy.mpmath.libmp.libintmath import giant_steps
+from mpmath.libmp.libintmath import giant_steps
import math
def _invert_monoms(p1):
--- ./sympy/polys/rootoftools.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/rootoftools.py 2014-12-04 14:05:59.247169386 -0700
@@ -28,8 +28,8 @@ from sympy.polys.polyerrors import (
from sympy.polys.domains import QQ
-from sympy.mpmath import mp, mpf, mpc, findroot, workprec
-from sympy.mpmath.libmp.libmpf import prec_to_dps
+from mpmath import mp, mpf, mpc, findroot, workprec
+from mpmath.libmp.libmpf import prec_to_dps
from sympy.utilities import lambdify, public
--- ./sympy/polys/tests/test_polyroots.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/polys/tests/test_polyroots.py 2014-12-04 14:06:31.622109815 -0700
@@ -17,6 +17,7 @@ from sympy.utilities.iterables import ca
from sympy.utilities.pytest import raises, XFAIL
from sympy.utilities.randtest import verify_numerically
import sympy
+import mpmath
a, b, c, d, e, q, t, x, y, z = symbols('a,b,c,d,e,q,t,x,y,z')
@@ -584,7 +585,7 @@ def test_nroots1():
n = 64
p = legendre_poly(n, x, polys=True)
- raises(sympy.mpmath.mp.NoConvergence, lambda: p.nroots(n=3, maxsteps=5))
+ raises(mpmath.mp.NoConvergence, lambda: p.nroots(n=3, maxsteps=5))
roots = p.nroots(n=3)
# The order of roots matters. They are ordered from smallest to the
--- ./sympy/printing/latex.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/printing/latex.py 2014-12-04 10:31:04.391339702 -0700
@@ -15,8 +15,8 @@ from .printer import Printer
from .conventions import split_super_sub, requires_partial
from .precedence import precedence, PRECEDENCE
-import sympy.mpmath.libmp as mlib
-from sympy.mpmath.libmp import prec_to_dps
+import mpmath.libmp as mlib
+from mpmath.libmp import prec_to_dps
from sympy.core.compatibility import default_sort_key, xrange
from sympy.utilities.iterables import has_variety
--- ./sympy/printing/repr.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/printing/repr.py 2014-12-04 10:31:04.392339701 -0700
@@ -9,8 +9,8 @@ from __future__ import print_function, d
from sympy.core.function import AppliedUndef
from .printer import Printer
-import sympy.mpmath.libmp as mlib
-from sympy.mpmath.libmp import prec_to_dps, repr_dps
+import mpmath.libmp as mlib
+from mpmath.libmp import prec_to_dps, repr_dps
class ReprPrinter(Printer):
--- ./sympy/printing/str.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/printing/str.py 2014-12-04 10:31:04.392339701 -0700
@@ -10,8 +10,8 @@ from sympy.core.numbers import Integer
from .printer import Printer
from sympy.printing.precedence import precedence, PRECEDENCE
-import sympy.mpmath.libmp as mlib
-from sympy.mpmath.libmp import prec_to_dps
+import mpmath.libmp as mlib
+from mpmath.libmp import prec_to_dps
from sympy.utilities import default_sort_key
--- ./sympy/sets/sets.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/sets/sets.py 2014-12-04 11:10:31.446662910 -0700
@@ -13,7 +13,7 @@ from sympy.core.decorators import deprec
from sympy.core.mul import Mul
from sympy.sets.contains import Contains
-from sympy.mpmath import mpi, mpf
+from mpmath import mpi, mpf
from sympy.logic.boolalg import And, Or, Not, true, false
from sympy.utilities import default_sort_key, subsets
--- ./sympy/sets/tests/test_sets.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/sets/tests/test_sets.py 2014-12-04 11:10:10.615676162 -0700
@@ -2,7 +2,7 @@ from sympy import (Symbol, Set, Union, I
GreaterThan, LessThan, Max, Min, And, Or, Eq, Ge, Le, Gt, Lt, Float,
FiniteSet, Intersection, imageset, I, true, false, ProductSet, E,
sqrt, Complement, EmptySet, sin, cos, Lambda, ImageSet, pi)
-from sympy.mpmath import mpi
+from mpmath import mpi
from sympy.utilities.pytest import raises
from sympy.utilities.pytest import raises, XFAIL
--- ./sympy/simplify/simplify.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/simplify/simplify.py 2014-12-04 10:31:04.393339699 -0700
@@ -34,7 +34,7 @@ from sympy.ntheory.factor_ import multip
from sympy.polys import (Poly, together, reduced, cancel, factor,
ComputationFailed, lcm, gcd)
-import sympy.mpmath as mpmath
+import mpmath
def _mexpand(expr):
--- ./sympy/solvers/solvers.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/solvers/solvers.py 2014-12-04 10:31:04.394339698 -0700
@@ -47,7 +47,7 @@ from sympy.utilities.lambdify import lam
from sympy.utilities.misc import filldedent
from sympy.utilities.iterables import uniq, generate_bell, flatten
-from sympy.mpmath import findroot
+from mpmath import findroot
from sympy.solvers.polysys import solve_poly_system
from sympy.solvers.inequalities import reduce_inequalities
@@ -2417,8 +2417,8 @@ def nsolve(*args, **kwargs):
Overdetermined systems are supported.
>>> from sympy import Symbol, nsolve
- >>> import sympy
- >>> sympy.mpmath.mp.dps = 15
+ >>> import mpmath, sympy
+ >>> mpmath.mp.dps = 15
>>> x1 = Symbol('x1')
>>> x2 = Symbol('x2')
>>> f1 = 3 * x1**2 - 2 * x2**2 - 1
--- ./sympy/solvers/tests/test_numeric.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/solvers/tests/test_numeric.py 2014-12-04 10:31:04.395339696 -0700
@@ -1,5 +1,5 @@
from sympy import Eq, Matrix, pi, sin, sqrt, Symbol, Integral, Piecewise, symbols
-from sympy.mpmath import mnorm, mpf
+from mpmath import mnorm, mpf
from sympy.solvers import nsolve
from sympy.utilities.lambdify import lambdify
from sympy.utilities.pytest import raises, XFAIL
--- ./sympy/utilities/decorator.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/utilities/decorator.py 2014-12-04 10:31:06.039336987 -0700
@@ -81,7 +81,7 @@ def conserve_mpmath_dps(func):
"""After the function finishes, resets the value of mpmath.mp.dps to
the value it had before the function was run."""
import functools
- from sympy import mpmath
+ import mpmath
def func_wrapper():
dps = mpmath.mp.dps
--- ./sympy/utilities/lambdify.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/utilities/lambdify.py 2014-12-04 10:31:06.040336985 -0700
@@ -93,7 +93,7 @@ NUMEXPR_TRANSLATIONS = {}
# Available modules:
MODULES = {
"math": (MATH, MATH_DEFAULT, MATH_TRANSLATIONS, ("from math import *",)),
- "mpmath": (MPMATH, MPMATH_DEFAULT, MPMATH_TRANSLATIONS, ("from sympy.mpmath import *",)),
+ "mpmath": (MPMATH, MPMATH_DEFAULT, MPMATH_TRANSLATIONS, ("from mpmath import *",)),
"numpy": (NUMPY, NUMPY_DEFAULT, NUMPY_TRANSLATIONS, ("import_module('numpy')",)),
"sympy": (SYMPY, SYMPY_DEFAULT, {}, (
"from sympy.functions import *",
--- ./sympy/utilities/runtests.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/utilities/runtests.py 2014-12-04 11:05:35.646805355 -0700
@@ -473,7 +473,7 @@ def _test(*paths, **kwargs):
split = kwargs.get('split', None)
blacklist = kwargs.get('blacklist', [])
blacklist.extend([
- "sympy/mpmath", # needs to be fixed upstream
+ "mpmath", # needs to be fixed upstream
])
blacklist = convert_to_native_paths(blacklist)
r = PyTestReporter(verbose=verbose, tb=tb, colors=colors,
@@ -607,7 +607,7 @@ def _doctest(*paths, **kwargs):
split = kwargs.get('split', None)
blacklist.extend([
"doc/src/modules/mpmath", # needs to be fixed upstream
- "sympy/mpmath", # needs to be fixed upstream
+ "mpmath", # needs to be fixed upstream
"doc/src/modules/plotting.rst", # generates live plots
"sympy/utilities/compilef.py", # needs tcc
"sympy/physics/gaussopt.py", # raises deprecation warning
--- ./sympy/utilities/tests/diagnose_imports.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/utilities/tests/diagnose_imports.py 2014-12-04 10:31:06.041336983 -0700
@@ -117,7 +117,7 @@ if __name__ == "__main__":
"""Is module relevant for import checking?
Only imports between relevant modules will be checked."""
- return in_module(module, 'sympy') and not in_module(module, 'sympy.mpmath')
+ return in_module(module, 'sympy') and not in_module(module, 'mpmath')
sorted_messages = []
--- ./sympy/utilities/tests/test_lambdify.py.orig 2014-11-20 13:00:41.000000000 -0700
+++ ./sympy/utilities/tests/test_lambdify.py 2014-12-04 10:31:06.041336983 -0700
@@ -3,7 +3,7 @@ from sympy import (
symbols, lambdify, sqrt, sin, cos, tan, pi, atan, acos, acosh, Rational,
Float, Matrix, Lambda, exp, Integral, oo, I, Abs, Function, true, false)
from sympy.printing.lambdarepr import LambdaPrinter
-from sympy import mpmath
+import mpmath
from sympy.utilities.lambdify import implemented_function
from sympy.utilities.pytest import skip
from sympy.utilities.decorator import conserve_mpmath_dps

View File

@ -1,13 +0,0 @@
--- sympy-sympy-1.8/sympy/physics/quantum/tests/test_circuitplot.py.orig 2021-04-09 16:29:50.000000000 -0600
+++ sympy-sympy-1.8/sympy/physics/quantum/tests/test_circuitplot.py 2021-04-12 13:27:55.241417177 -0600
@@ -4,7 +4,9 @@ from sympy.physics.quantum.gate import C
from sympy.external import import_module
from sympy.testing.pytest import skip
-mpl = import_module('matplotlib')
+mpl = import_module(
+ 'matplotlib', import_kwargs={'fromlist': ['pyplot']},
+ catch=(RuntimeError,)) # This is raised in environments that have no display.
def test_render_label():
assert render_label('q0') == r'$\left|q0\right\rangle$'

View File

@ -1,38 +0,0 @@
Fixes this error with GCC 14 and numpy 1.19.0 or later:
wrapper_module_15.c:32:60: error: initialization of void (*)(char **, const npy_intp *, const npy_intp *, void *) {aka void (*)(char **, const long int *, const long int *, void *)} from incompatible pointer type void (*)(char **, npy_intp *, npy_intp *, void *) {aka void (*)(char **, long int *, long int *, void *)}
32 | PyUFuncGenericFunction wrapped_281000935073472_funcs[1] = {&wrapped_281000935073472_ufunc};
| ^
error: command '/usr/bin/gcc' failed with exit code 1
--- sympy-sympy-1.12/sympy/utilities/autowrap.py.orig 2023-05-09 17:42:05.000000000 -0600
+++ sympy-sympy-1.12/sympy/utilities/autowrap.py 2023-11-30 13:26:06.612852361 -0700
@@ -714,7 +714,7 @@ static PyMethodDef ${module}Methods[] =
_ufunc_outcalls = Template("*((double *)out${outnum}) = ${funcname}(${call_args});")
_ufunc_body = Template("""\
-static void ${funcname}_ufunc(char **args, npy_intp *dimensions, npy_intp* steps, void* data)
+static void ${funcname}_ufunc(char **args, const npy_intp *dimensions, const npy_intp* steps, void* data)
{
npy_intp i;
npy_intp n = dimensions[0];
--- sympy-sympy-1.12/sympy/utilities/tests/test_autowrap.py.orig 2023-05-09 17:42:05.000000000 -0600
+++ sympy-sympy-1.12/sympy/utilities/tests/test_autowrap.py 2023-11-30 12:42:03.489842964 -0700
@@ -284,7 +284,7 @@ static PyMethodDef wrapper_module_%(num)
{NULL, NULL, 0, NULL}
};
-static void test_ufunc(char **args, npy_intp *dimensions, npy_intp* steps, void* data)
+static void test_ufunc(char **args, const npy_intp *dimensions, const npy_intp* steps, void* data)
{
npy_intp i;
npy_intp n = dimensions[0];
@@ -378,7 +378,7 @@ static PyMethodDef wrapper_module_%(num)
{NULL, NULL, 0, NULL}
};
-static void multitest_ufunc(char **args, npy_intp *dimensions, npy_intp* steps, void* data)
+static void multitest_ufunc(char **args, const npy_intp *dimensions, const npy_intp* steps, void* data)
{
npy_intp i;
npy_intp n = dimensions[0];

View File

@ -1,103 +0,0 @@
--- sympy-sympy-1.12/sympy/logic/boolalg.py.orig 2023-05-09 17:42:05.000000000 -0600
+++ sympy-sympy-1.12/sympy/logic/boolalg.py 2023-06-29 16:38:14.568908065 -0600
@@ -1012,7 +1012,7 @@ class Xor(BooleanFunction):
for j in range(i + 1, len(rel)):
rj, cj = rel[j][:2]
if cj == nc:
- odd = ~odd
+ odd = not odd
break
elif cj == c:
break
--- sympy-sympy-1.12/sympy/parsing/ast_parser.py.orig 2023-05-09 17:42:05.000000000 -0600
+++ sympy-sympy-1.12/sympy/parsing/ast_parser.py 2023-06-29 17:12:19.620751353 -0600
@@ -23,7 +23,7 @@ from sympy.core.basic import Basic
from sympy.core.sympify import SympifyError
from ast import parse, NodeTransformer, Call, Name, Load, \
- fix_missing_locations, Str, Tuple
+ fix_missing_locations, Constant, Tuple
class Transform(NodeTransformer):
@@ -52,7 +52,7 @@ class Transform(NodeTransformer):
elif node.id in ['True', 'False']:
return node
return fix_missing_locations(Call(func=Name('Symbol', Load()),
- args=[Str(node.id)], keywords=[]))
+ args=[Constant(node.id)], keywords=[]))
def visit_Lambda(self, node):
args = [self.visit(arg) for arg in node.args.args]
--- sympy-sympy-1.12/sympy/parsing/sympy_parser.py.orig 2023-05-09 17:42:05.000000000 -0600
+++ sympy-sympy-1.12/sympy/parsing/sympy_parser.py 2023-06-29 17:42:24.574014070 -0600
@@ -627,7 +627,9 @@ def factorial_notation(tokens: List[TOKE
result: List[TOKEN] = []
nfactorial = 0
for toknum, tokval in tokens:
- if toknum == ERRORTOKEN:
+ if toknum == OP and tokval == "!":
+ nfactorial += 1
+ elif toknum == ERRORTOKEN:
op = tokval
if op == '!':
nfactorial += 1
@@ -1135,7 +1137,7 @@ class EvaluateFalseTransformer(ast.NodeT
new_node = ast.Call(
func=ast.Name(id=sympy_class, ctx=ast.Load()),
args=[left, right],
- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
+ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
starargs=None,
kwargs=None
)
@@ -1167,8 +1169,8 @@ class EvaluateFalseTransformer(ast.NodeT
if isinstance(node.op, ast.Sub):
right = ast.Call(
func=ast.Name(id='Mul', ctx=ast.Load()),
- args=[ast.UnaryOp(op=ast.USub(), operand=ast.Num(1)), right],
- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
+ args=[ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1)), right],
+ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
starargs=None,
kwargs=None
)
@@ -1178,16 +1180,16 @@ class EvaluateFalseTransformer(ast.NodeT
rev = True
left = ast.Call(
func=ast.Name(id='Pow', ctx=ast.Load()),
- args=[left, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))],
- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
+ args=[left, ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1))],
+ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
starargs=None,
kwargs=None
)
else:
right = ast.Call(
func=ast.Name(id='Pow', ctx=ast.Load()),
- args=[right, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))],
- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
+ args=[right, ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1))],
+ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
starargs=None,
kwargs=None
)
@@ -1197,7 +1199,7 @@ class EvaluateFalseTransformer(ast.NodeT
new_node = ast.Call(
func=ast.Name(id=sympy_class, ctx=ast.Load()),
args=[left, right],
- keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
+ keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
starargs=None,
kwargs=None
)
@@ -1212,7 +1214,7 @@ class EvaluateFalseTransformer(ast.NodeT
def visit_Call(self, node):
new_node = self.generic_visit(node)
if isinstance(node.func, ast.Name) and node.func.id in self.functions:
- new_node.keywords.append(ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load())))
+ new_node.keywords.append(ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load())))
return new_node

View File

@ -1,104 +1,58 @@
# We used to build with Theano support. However, we no longer have a compatible
# version of Theano in Fedora. If aesara is ever packaged for Fedora, we can
# use it instead.
# We are archful (see below), but there are no ELF objects in the binary RPM.
%global debug_package %{nil}
Name: sympy
Version: 1.12
Release: 3%{?dist}
Version: 0.7.6.1
Release: 1%{?dist}
Summary: A Python library for symbolic mathematics
License: BSD
URL: http://sympy.org/
Source0: https://github.com/%{name}/%{name}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
# Upstream tried to graft in another project as a private copy; we rip
# it out (rhbz# 551576):
Patch0: %{name}-0.7.6-strip-internal-mpmath.patch
Patch1: https://github.com/AadityaNair/sympy/commit/1be64700c1063eff2b2747ce63ca03eac797b4a4.patch
BuildArch: noarch
# The project as a whole is BSD-3-Clause.
# The files in sympy/parsing/latex are MIT.
License: BSD-3-Clause AND MIT
URL: https://sympy.org/
Source0: https://github.com/%{name}/%{name}/archive/%{name}-%{version}.tar.gz
# Skip tests that require a display
Patch0: %{name}-circuitplot.patch
# Adapt to python 3.12
Patch1: %{name}-python3.12.patch
# Fix incompatible pointers, which are an error with GCC 14
Patch2: %{name}-incompatible-pointer.patch
# This package used to be noarch, and should still be noarch. However, because
# there is no JDK available on i686 anymore, the antlr4 package is also not
# available on i686. When we can stop building on i686 altogether, we can bring
# this back. In the meantime, we cannot claim to be noarch, because the i686
# build is different from the other arches in lacking BuildRequires: antlr4.
# BuildArch: noarch
%ifarch %{java_arches}
BuildRequires: antlr4
%endif
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
BuildRequires: python3-devel
BuildRequires: %{py3_dist cython}
BuildRequires: %{py3_dist gmpy2}
BuildRequires: %{py3_dist llvmlite}
BuildRequires: %{py3_dist matplotlib}
BuildRequires: %{py3_dist matplotlib-inline}
BuildRequires: %{py3_dist myst-parser}
BuildRequires: %{py3_dist numexpr}
BuildRequires: python3-numpy-f2py
BuildRequires: %{py3_dist scipy}
BuildRequires: %{py3_dist wurlitzer}
# Documentation
BuildRequires: gettext
BuildRequires: graphviz
BuildRequires: ImageMagick
BuildRequires: librsvg2-tools
BuildRequires: make
BuildRequires: %{py3_dist furo}
BuildRequires: %{py3_dist linkify-it-py}
BuildRequires: %{py3_dist mpmath}
BuildRequires: %{py3_dist numpydoc}
BuildRequires: %{py3_dist sphinx-autobuild}
BuildRequires: %{py3_dist sphinx-copybutton}
BuildRequires: %{py3_dist sphinx-math-dollar}
BuildRequires: %{py3_dist sphinx-reredirects}
BuildRequires: %{py3_dist sphinxcontrib-jquery}
BuildRequires: python-mpmath-doc
BuildRequires: numpy python3-numpy
BuildRequires: numpy-f2py python3-numpy-f2py
BuildRequires: python2-devel python3-devel
BuildRequires: python-fastcache python3-fastcache
BuildRequires: python-gmpy2 python3-gmpy2
BuildRequires: python-matplotlib python3-matplotlib
BuildRequires: python-mpmath python3-mpmath
BuildRequires: python-sphinx
BuildRequires: scipy python3-scipy
BuildRequires: tex(latex)
BuildRequires: tex-dvipng
# Tests
BuildRequires: parallel
BuildRequires: %{py3_dist autowrap}
BuildRequires: xorg-x11-fonts-Type1
BuildRequires: xorg-x11-server-Xvfb
%global _description\
SymPy aims to become a full-featured computer algebra system (CAS)\
while keeping the code as simple as possible in order to be\
comprehensible and easily extensible. SymPy is written entirely in\
Python and does not require any external libraries.
Requires: python-fastcache
Requires: python-gmpy2
Requires: python-matplotlib
Requires: python-mpmath
Requires: python-pyglet
%description %_description
Recommends: python-theano
%description
SymPy aims to become a full-featured computer algebra system (CAS)
while keeping the code as simple as possible in order to be
comprehensible and easily extensible. SymPy is written entirely in
Python and does not require any external libraries.
%package -n python3-%{name}
Summary: A Python3 library for symbolic mathematics
Recommends: tex(latex)
Recommends: tex(amsfonts.sty)
Recommends: tex(amsmath.sty)
Recommends: tex(euler.sty)
Recommends: tex(eulervm.sty)
Recommends: tex(standalone.cls)
%ifarch %{java_arches}
Recommends: %{py3_dist antlr4-python3-runtime}
%endif
Recommends: %{py3_dist cython}
Recommends: %{py3_dist gmpy2}
Recommends: %{py3_dist matplotlib}
Recommends: %{py3_dist numexpr}
Recommends: %{py3_dist pyglet}
Recommends: %{py3_dist scipy}
Requires: python3-fastcache
Requires: python3-gmpy2
Requires: python3-matplotlib
Requires: python3-mpmath
Requires: python3-pyglet
# This can be removed when F38 reaches EOL
Obsoletes: sympy-texmacs < 1.8
Recommends: python3-theano
%description -n python3-%{name}
SymPy aims to become a full-featured computer algebra system (CAS)
@ -106,100 +60,92 @@ while keeping the code as simple as possible in order to be
comprehensible and easily extensible. SymPy is written entirely in
Python and does not require any external libraries.
%package texmacs
Summary: TeXmacs integration for sympy
Requires: %{name} = %{version}-%{release}, TeXmacs
%description texmacs
This package contains a TeXmacs plugin for sympy.
%package examples
License: BSD-3-Clause
Summary: Sympy examples
Requires: python3-%{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
%description examples
This package contains example input for sympy.
%package doc
# This project is BSD-3-Clause. Other files bundled with the documentation
# have the following licenses:
# - searchindex.js: BSD-2-Clause
# - _static/basic.css: BSD-2-Clause
# - _static/clipboard.min.js: MIT
# - _static/copy*: MIT
# - _static/doctools.js: BSD-2-Clause
# - _static/graphviz.js: BSD-2-Clause
# - _static/jquery*.js: MIT
# - _static/language_data.js: BSD-2-Clause
# - _static/plot_directive.css: PSF-2.0 (see note)
# - _static/pygments.css: BSD-2-Clause
# - _static/scripts/*: MIT
# - _static/searchtools.js: BSD-2-Clause
# - _static/styles/*: MIT
# - _static/underscore*.js: MIT
#
# NOTE: The license of _static/plot_directive.css is the same as the license of
# matplotlib. The matplotlib license is functionally identical to PSF-2.0, but
# uses different organization and project names. I am using the PSF-2.0
# identifier for now, because there is no valid SPDX choice. Revisit this.
License: BSD-3-Clause AND BSD-2-Clause AND MIT AND PSF-2.0
Summary: Documentation for sympy
Provides: bundled(js-jquery)
Provides: bundled(js-underscore)
Requires: %{name} = %{version}-%{release}
Provides: bundled(jquery)
%description doc
HTML documentation for sympy.
%prep
%autosetup -p1 -n %{name}-%{name}-%{version}
%setup -q
%patch0 -b .mpmath
%patch1 -p1
rm -rf sympy/mpmath doc/src/modules/mpmath
rm -rf %{name}-%{version}/sympy/mpmath %{name}-%{version}/doc/src/module/mpmath
fixtimestamp() {
touch -r $1.orig $1
rm -f $1.orig
}
# One plotting test expects one warning, but the same warning is triggered in
# a different spot with recent versions of python, leading to an assertion
# failure.
sed -e '/import warnings/ifrom sympy.utilities.pytest import XFAIL' \
-e '/^def test_matplotlib():/i@XFAIL' \
-i sympy/plotting/tests/test_plot_implicit.py
# Do not depend on env
for fil in $(grep -rl "^#\![[:blank:]]*%{_bindir}/env" .); do
sed -i.orig 's,^\(#\![[:blank:]]*%{_bindir}/\)env python,\1python3,' $fil
fixtimestamp $fil
done
# Remove bogus shebangs
for fil in sympy/physics/mechanics/models.py \
sympy/physics/optics/polarization.py; do
sed -i.orig '/env python/d' $fil
fixtimestamp $fil
done
# Use local objects.inv for intersphinx
sed -e "s|\('https://mpmath\.org/doc/current/', \)None|\1'%{_docdir}/python-mpmath-doc/html/objects.inv'|" \
-i doc/src/conf.py
%generate_buildrequires
%pyproject_buildrequires
# Make a copy for building the python3 version
rm -rf %{py3dir}
cp -a . %{py3dir}
%build
%ifarch %{java_arches}
# Regenerate the ANTLR files
%{python3} setup.py antlr
%endif
# Build the python2 version
python2 setup.py build
# Build
%pyproject_wheel
# Build the python3 version
pushd %{py3dir}
python3 setup.py build
popd
# Build the documentation
pushd doc
make html SPHINXOPTS=%{?_smp_mflags} PYTHON=%{python3}
cd doc
make html
make cheatsheet
pushd %{py3dir}/doc
make cheatsheet
popd
%install
%pyproject_install
%pyproject_save_files isympy sympy
# Install the python3 version
pushd %{py3dir}
python3 setup.py install -O1 --skip-build --root %{buildroot}
sed -i 's/env python/python3/' %{buildroot}%{_bindir}/isympy
touch -r bin/isympy %{buildroot}%{_bindir}/isympy
mv %{buildroot}%{_bindir}/isympy %{buildroot}%{_bindir}/python3-isympy
mv %{buildroot}%{_mandir}/man1/isympy.1 \
%{buildroot}%{_mandir}/man1/python3-isympy.1
popd
# Install the python2 version
python2 setup.py install -O1 --skip-build --root %{buildroot}
sed -i 's/env python/python2/' %{buildroot}%{_bindir}/isympy
touch -r bin/isympy %{buildroot}%{_bindir}/isympy
## Remove extra files
rm -f %{buildroot}%{_bindir}/{,doc}test
# Don't let an executable script go into the documentation
chmod -R a-x+X examples
## Install the TeXmacs integration
sed 's/python/python2/' data/TeXmacs/bin/tm_sympy > \
%{buildroot}%{_bindir}/tm_sympy
chmod a+x %{buildroot}%{_bindir}/tm_sympy
touch -r data/TeXmacs/bin/tm_sympy %{buildroot}%{_bindir}/tm_sympy
mkdir -p %{buildroot}%{_datadir}/TeXmacs/plugins/sympy
cp -a data/TeXmacs/progs %{buildroot}%{_datadir}/TeXmacs/plugins/sympy
# Fix permissions
chmod 0755 %{buildroot}%{python3_sitelib}/sympy/benchmarks/bench_symbench.py \
%{buildroot}%{python3_sitelib}/sympy/testing/tests/diagnose_imports.py
# Don't let an executable script go into the documentation
chmod a-x examples/all.py
# Install the HTML documentation
mkdir -p %{buildroot}%{_docdir}/%{name}-doc
@ -207,276 +153,48 @@ cp -a doc/_build/html %{buildroot}%{_docdir}/%{name}-doc
rm -f %{buildroot}%{_docdir}/%{name}-doc/html/.buildinfo
rm -fr %{buildroot}%{_docdir}/%{name}-doc/i18n
# Try to get rid of pyc files, which aren't useful for documentation
find examples/ -name '*.py[co]' -print -delete
# Stash the python3 build of the cheatsheet where %%doc can find it
cp -p %{py3dir}/doc/_build/cheatsheet/combinatoric_cheatsheet.pdf .
%check
# Many tests assume they are running on an x86_64 machine. Some assume that
# native 64-bit integers are available. Some assume that 80-bit floating point
# numbers are available. Some assume that certain operations always produce
# numpy float64 values (but produce float32 values on some architectures). I
# used to try to keep the test suite working on all architectures, but it has
# become too much of a burden. Only run tests if we happen to build on x86_64.
# We cannot use %%ifarch here because this is a noarch package.
if [ "$(uname -m)" = "x86_64" ]; then
# Split into many small chunks to reduce waiting in the end-game
jobs=%{?_smp_mflags}; jobs=${jobs#-j}; jobs=$((jobs * 3))
# The python3 tests fail with Unicode errors without this
export LC_ALL=en_US.UTF-8
xvfb-run -d \
parallel %{?_smp_mflags} \
%{python3} bin/test -v --split {}/$jobs \
::: $(bash -c "echo {1..$jobs}")
fi
%files -n python3-%{name} -f %{pyproject_files}
%doc AUTHORS README.md
%doc doc/_build/cheatsheet/cheatsheet.pdf
%doc doc/_build/cheatsheet/combinatoric_cheatsheet.pdf
let "dnum = $RANDOM % 90 + 10"
xvfb-run -n $dnum python2 setup.py test
pushd %{py3dir}
xvfb-run -n $dnum python3 setup.py test
popd
%files
%doc AUTHORS README.rst doc/_build/cheatsheet/combinatoric_cheatsheet.pdf
%license LICENSE
%{python2_sitelib}/sympy/
%{python2_sitelib}/sympy-%{version}-*.egg-info
%{_bindir}/isympy
%{_mandir}/man1/isympy.1*
%files -n python3-%{name}
%doc AUTHORS README.rst combinatoric_cheatsheet.pdf
%license LICENSE
%{python3_sitelib}/sympy/
%{python3_sitelib}/sympy-%{version}-*.egg-info
%{_bindir}/python3-isympy
%{_mandir}/man1/python3-isympy.1*
%files texmacs
%license data/TeXmacs/LICENSE
%{_bindir}/tm_sympy
%{_datadir}/TeXmacs/plugins/sympy/
%files examples
%doc examples/*
%doc examples
%files doc
%docdir %{_docdir}/%{name}-doc/html
%{_docdir}/%{name}-doc/html
%changelog
* Thu Nov 30 2023 Jerry James <loganjerry@gmail.com> - 1.12-3
- Fix incompatible pointer types for GCC 14 compatibility
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jun 29 2023 Jerry James <loganjerry@gmail.com> - 1.12-1
- Version 1.12
- Add patch for python 3.12 compatibility
* Thu Jun 29 2023 Python Maint <python-maint@redhat.com> - 1.11.1-5
- Rebuilt for Python 3.12
* Tue Feb 21 2023 Jerry James <loganjerry@gmail.com> - 1.11.1-4
- Fix the antlr4 Recommends (bz 2172030)
- Dynamically generate BuildRequires (to the extent possible)
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Sep 27 2022 Jerry James <loganjerry@gmail.com> - 1.11.1-2
- Do not run antlr on i386 where it doesn't exist
- Be archful so we don't BR a package that doesn't exist on i386
* Tue Sep 6 2022 Jerry James <loganjerry@gmail.com> - 1.11.1-1
- Version 1.11.1
- Convert License tag to SPDX
- Drop upstreamed patches: -tests, -distutils, -signature
- Drop fastcache dependency
- Regenerate ANTLR4 files
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.10.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jun 15 2022 Python Maint <python-maint@redhat.com> - 1.10.1-2
- Rebuilt for Python 3.11
* Sat Mar 19 2022 Jerry James <loganjerry@gmail.com> - 1.10.1-1
- Version 1.10.1
* Thu Mar 17 2022 Jerry James <loganjerry@gmail.com> - 1.10-1
- Version 1.10
- Drop upstreamed patches: -python3, -png-decoder, -gmpy2-mpq,
and -rational-exponent
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Oct 8 2021 Jerry James <loganjerry@gmail.com> - 1.9-1
- Version 1.9
- Drop theano support due to incompatibility with the Fedora version
- Add -tests, -distutils, -gmpy2-mpq, and -rational-exponent patches to
work around test failures
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jun 10 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.8-2~bootstrap
- Build in bootstrap mode to work-around missing theano
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.8-2
- Rebuilt for Python 3.10
* Mon Apr 12 2021 Jerry James <loganjerry@gmail.com> - 1.8-1
- Version 1.8
- Drop the -float patch and only run tests on x86_64
- Add -circuitplot patch to skip tests that fail with no display
- Drop the -texmacs subpackage; the TeXmacs package ships its own sympy plugin
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Dec 12 2020 Jerry James <loganjerry@gmail.com> - 1.7.1-1
- Version 1.7.1
* Thu Dec 10 2020 Jerry James <loganjerry@gmail.com> - 1.7-2
- Fix preview of PNG images (bz 1906363)
- Add missing Recommends needed to preview images (bz 1906363)
* Sat Nov 28 2020 Jerry James <loganjerry@gmail.com> - 1.7-1
- Version 1.7
* Thu Nov 26 2020 Jerry James <loganjerry@gmail.com> - 1.6.2-2
- Update Theano dependency for Theano-PyMC
- Add -theano-pymc patch to adapt
* Mon Aug 10 2020 Jerry James <loganjerry@gmail.com> - 1.6.2-1
- Version 1.6.2
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jul 2 2020 Jerry James <loganjerry@gmail.com> - 1.6.1-1
- Version 1.6.1
- Drop upstreamed -ast patch
* Wed Jun 24 2020 Jerry James <loganjerry@gmail.com> - 1.6-2
- Add setuptools BR
- Add -ast patch to fix compilation with python 3.9
* Fri May 29 2020 Jerry James <loganjerry@gmail.com> - 1.6-1
- Version 1.6
- Drop upstreamed -doc and -sample-set patches
- Disable testing on 32-bit systems; too many tests need 64-bit integers
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.5.1-4
- Rebuilt for Python 3.9
* Mon May 11 2020 Jerry James <loganjerry@gmail.com> - 1.5.1-3
- Add -sample-set patch to fix test failure with python 3.9
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jan 8 2020 Jerry James <loganjerry@gmail.com> - 1.5.1-1
- Update to 1.5.1
- Drop upstreamed patches
- Drop upstreamed workaround for numpy with a release candidate version
* Mon Nov 4 2019 Jerry James <loganjerry@gmail.com> - 1.4-6
- Fix broken dependencies in the -texmacs subpackage
- Recommend numexpr
* Fri Sep 13 2019 Jerry James <loganjerry@gmail.com> - 1.4-5
- Add one more patch to fix a python 3.8 warning
* Sat Aug 24 2019 Robert-André Mauchin <zebob.m@gmail.com> - 1.4-4
- Add patches to fix build with Python 3.8 and Numpy 1.17
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.4-3
- Rebuilt for Python 3.8
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Apr 17 2019 Jerry James <loganjerry@gmail.com> - 1.4-1
- Update to 1.4
- Drop -factorial patch
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Jan 30 2019 Jerry James <loganjerry@gmail.com> - 1.3-2
- Add -sympify and -factorial patches to work around test failures
* Mon Jan 14 2019 Jerry James <loganjerry@gmail.com> - 1.3-2
- Drop Requires from the -doc subpackage (bz 1665767)
* Sat Oct 6 2018 Jerry James <loganjerry@gmail.com> - 1.3-1
- Update to 1.3
- Drop upstreamed patches: subexpr-lambdify, test-code-quality, tex-encoding
- Drop the python2 subpackage
- Add -python3 patch to ask cython to generate python 3 code
* Tue Aug 14 2018 Miro Hrončok <mhroncok@redhat.com> - 1.2-2
- Fix _subexpr method in lambdify
* Sat Jul 21 2018 Jerry James <loganjerry@gmail.com> - 1.2-1
- Update to 1.2 (bz 1599502)
- Drop upstreamed -python3 patch
- Add -test-code-quality and -doc patches
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1.1.1-5
- Rebuilt for Python 3.7
* Wed Feb 21 2018 Iryna Shcherbina <ishcherb@redhat.com> - 1.1.1-4
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.1.1-2
- Python 2 binary package renamed to python2-sympy
See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
* Thu Jul 27 2017 Jerry James <loganjerry@gmail.com> - 1.1.1-1
- Update to 1.1.1 (bz 1468405)
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jul 24 2017 Jerry James <loganjerry@gmail.com> - 1.1-3
- Fix dependency on python2 from python3 package (bz 1471886)
* Sat Jul 8 2017 Jerry James <loganjerry@gmail.com> - 1.1-2
- Disable tests that fail due to overflow on some 32-bit architectures
* Fri Jul 7 2017 Jerry James <loganjerry@gmail.com> - 1.1-1
- Update to 1.1 (bz 1468405)
- All patches have been upstreamed; drop them all
* Sat Apr 1 2017 Jerry James <loganjerry@gmail.com> - 1.0-7
- Update theano test for theano 0.9
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Jan 20 2017 Iryna Shcherbina <ishcherb@redhat.com> - 1.0-5
- Make documentation scripts non-executable to avoid
autogenerating Python 2 dependency in sympy-examples (#1360766)
* Fri Jan 13 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.0-4
- Run tests in parallel
- Work around some broken tests
- Use python3 in texmacs-sympy (#1360766)
* Thu Dec 22 2016 Miro Hrončok <mhroncok@redhat.com> - 1.0-4
- Rebuild for Python 3.6
* Fri Jul 22 2016 Jerry James <loganjerry@gmail.com> - 1.0-3
- Update the -test patch for the latest matplotlib release
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Sat Apr 2 2016 Jerry James <loganjerry@gmail.com> - 1.0-2
- Fix bad /usr/bin/env substitution
* Thu Mar 31 2016 Jerry James <loganjerry@gmail.com> - 1.0-1
- Update to 1.0
- All patches have been upstreamed; drop them all
- Add -test patch to fix test failures with recent mpmath
- Recommend scipy
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
* Thu Sep 3 2015 Jerry James <loganjerry@gmail.com> - 0.7.6.1-1
- Update to 0.7.6.1 (bz 1259971)