Hi all,
I am pretty much ready to put out a release candidate for SymPy 1.14
in terms of issues that I am aware of. The release issue is here:
https://github.com/sympy/sympy/issues/27939
Open issues/PRs with the 1.14 milestone are here:
https://github.com/sympy/sympy/milestone/66
If anyone else knows of any outstanding issues or pull requests that
urgently need to be in SymPy 1.14 then let me know.
The two outstanding items right now are both fixed by pull requests
from me that I am waiting for review on:
https://github.com/sympy/sympy/pull/26795
https://github.com/sympy/sympy/pull/27949
The first of these makes it an error to mix elements of a finite field
like GF(7) with sympy expressions e.g.:
>>> x + GF(7)(2)
TypeError
Currently that will succeed sort of by accident because sympify
converts things with an __int__ method. Most other domain elements use
the CantSympify type specifically to prevent this sort of thing.
Mixing positive characteristic with sympy expressions is problematic
because sympy expressions implicitly use characteristic zero
everywhere e.g.:
>>> x = symbols('x')
>>> e = GF(5)(3)
>>> x + 1/e
x + 2
>>> x + S(1)/e
x + 1/3
It is not super urgent to have that PR but given recent changes around
using python-flint I would like to make handling of things like this
more consistent. I added it to the milestone shortly after the 1.13
release because of issues that surfaced from using python-flint's type
for the GF domains but I guess the PR could just be deferred. One
possible issue with putting that in is that perhaps it would be better
to have a deprecation first.
The second PR deprecates the gcd argument to Rational which is
documented as being useful for creating unevaluated rationals:
>>> Rational(2, 4, 1)
2/4
Supporting this makes it impossible to use e.g. gmpy.mpq or flint.fmpq
as the internal implementation of Rational. I would like to get this
deprecated ASAP because really we need to turn this into a hard error.
Given more time I would just make it into a hard error immediately but
since 1.14 is about to be released we can get the deprecation warning
out for at least one release.
--
Oscar