@@ -15,7 +15,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version: [3.8, 3.9, '3.10', 3.11, 3.12, 3.13, 3.14, pypy3.10-nightly]
|
||||
python-version: [3.9, '3.10', 3.11, 3.12, 3.13, 3.14, pypy3.10-nightly]
|
||||
env:
|
||||
PYTEST_ADDOPTS: -n auto
|
||||
steps:
|
||||
|
||||
+2
-2
@@ -113,8 +113,8 @@ Release history:
|
||||
1. Download & installation
|
||||
--------------------------
|
||||
|
||||
Mpmath requires Python 3.8 or later versions. It has been tested with CPython
|
||||
3.8 through 3.14 and for PyPy 3.10.
|
||||
Mpmath requires Python 3.9 or later versions. It has been tested with CPython
|
||||
3.9 through 3.14 and for PyPy 3.10.
|
||||
|
||||
The latest release of mpmath can be downloaded from the mpmath
|
||||
website and from https://github.com/mpmath/mpmath/releases
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
Setting up mpmath
|
||||
=================
|
||||
|
||||
Mpmath requires at least Python 3.8. It has been tested with CPython 3.8
|
||||
Mpmath requires at least Python 3.9. It has been tested with CPython 3.9
|
||||
through 3.14 and for PyPy 3.10
|
||||
|
||||
Download and installation
|
||||
|
||||
@@ -271,18 +271,10 @@ else:
|
||||
_gcd2 = math.gcd
|
||||
|
||||
|
||||
if sys.version_info >= (3, 9) and BACKEND == 'python':
|
||||
if BACKEND == 'python':
|
||||
gcd = math.gcd
|
||||
elif BACKEND == 'gmpy':
|
||||
gcd = gmpy.gcd
|
||||
else:
|
||||
def gcd(*args):
|
||||
res = MPZ_ZERO
|
||||
for a in args:
|
||||
a = MPZ(a)
|
||||
if res != MPZ_ONE:
|
||||
res = _gcd2(res, a)
|
||||
return res
|
||||
|
||||
|
||||
@lru_cache(maxsize=250)
|
||||
|
||||
@@ -477,8 +477,6 @@ def test_mpf_floats_bulk(fmt, x):
|
||||
if not x and math.copysign(1, x) == -1:
|
||||
return # skip negative zero
|
||||
spec = read_format_spec(fmt)
|
||||
if sys.version_info < (3, 9) and spec['type'] in ('g', 'G'):
|
||||
pytest.skip("CPython has incompatible g/G formatting in 3.8 and 3.9+")
|
||||
if not spec['type'] and spec['precision'] < 0 and math.isfinite(x):
|
||||
# The mpmath could choose a different decimal
|
||||
# representative (wrt CPython) for same binary
|
||||
@@ -500,8 +498,6 @@ def test_mpc_complexes(fmt, z):
|
||||
or (not z.imag and math.copysign(1, z.imag) == -1)):
|
||||
return # skip negative zero
|
||||
spec = read_format_spec(fmt)
|
||||
if sys.version_info < (3, 9) and spec['type'] in ('g', 'G'):
|
||||
pytest.skip("CPython has incompatible g/G formatting in 3.8 and 3.9+")
|
||||
if spec['precision'] < 0 and any(math.isfinite(_) for _ in [z.real, z.imag]):
|
||||
# The mpmath could choose a different decimal
|
||||
# representative (wrt CPython) for same binary
|
||||
|
||||
@@ -244,9 +244,6 @@ def test_matrix_numpy():
|
||||
assert matrix(l) == matrix(a)
|
||||
assert (numpy.array(matrix(l)) == numpy.array(matrix(l).tolist(),
|
||||
dtype=object)).all()
|
||||
|
||||
if sys.version_info < (3, 9):
|
||||
pytest.skip("latest numpy dropped support for CPython 3.8")
|
||||
if numpy.__version__ >= '2':
|
||||
pytest.raises(ValueError, lambda: numpy.array(matrix(l), copy=False))
|
||||
|
||||
|
||||
+1
-2
@@ -12,7 +12,6 @@ classifiers = ['License :: OSI Approved :: BSD License',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3 :: Only',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
@@ -22,7 +21,7 @@ classifiers = ['License :: OSI Approved :: BSD License',
|
||||
'Programming Language :: Python :: Implementation :: CPython',
|
||||
'Programming Language :: Python :: Implementation :: PyPy']
|
||||
dynamic = ['version']
|
||||
requires-python = '>=3.8'
|
||||
requires-python = '>=3.9'
|
||||
[project.readme]
|
||||
file = 'README.rst'
|
||||
content-type = 'text/x-rst'
|
||||
|
||||
Reference in New Issue
Block a user