diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 05bdbd24..52699c4f 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -17,7 +17,7 @@ jobs: - name: Install dependencies run: | pip install --upgrade setuptools pip - pip install --upgrade .[develop,gmpy2,ci] + pip install --upgrade .[develop,gmpy2,gmp,ci] - name: Run coverage tests run: | pytest @@ -27,6 +27,10 @@ jobs: pytest mpmath/tests/test_basic_ops.py mpmath/tests/test_convert.py \ mpmath/tests/test_functions.py mpmath/tests/test_gammazeta.py \ mpmath/tests/test_bitwise.py + pip uninstall -y python-gmp + pytest mpmath/tests/test_basic_ops.py mpmath/tests/test_convert.py \ + mpmath/tests/test_functions.py mpmath/tests/test_gammazeta.py \ + mpmath/tests/test_bitwise.py - name: Generate coverage reports run: | coverage xml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 98e1b02b..da2e34c8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,6 +16,10 @@ jobs: fail-fast: false matrix: python-version: [3.9, '3.10', 3.11, 3.12, 3.13, 3.14, pypy3.10-nightly] + nogmpy: [false] + include: + - python-version: 3.13 + nogmpy: true env: PYTEST_ADDOPTS: -n auto steps: @@ -33,5 +37,7 @@ jobs: - name: Install dependencies run: | pip install --upgrade setuptools pip - pip install --upgrade .[develop,gmpy2,ci] + pip install --upgrade .[develop,gmpy2,gmp,ci] + - run: pip uninstall -y gmpy2 + if: matrix.nogmpy - run: pytest diff --git a/mpmath/libmp/backend.py b/mpmath/libmp/backend.py index 3d80cb7b..6d1ccba0 100644 --- a/mpmath/libmp/backend.py +++ b/mpmath/libmp/backend.py @@ -27,7 +27,11 @@ if 'MPMATH_NOGMPY' not in os.environ: import gmpy2 as gmpy BACKEND = 'gmpy' except ImportError: - pass + try: + import gmp as gmpy + BACKEND = 'gmp' + except ImportError: + pass if gmpy: MPZ = gmpy.mpz diff --git a/pyproject.toml b/pyproject.toml index 1dfa85c8..3b29e7f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,6 +38,7 @@ develop = ['mpmath[tests]', 'flake518>=1.5; python_version>="3.9"', 'pytest-cov', 'wheel', 'build'] gmpy2 = ['gmpy2>=2.2; platform_python_implementation!="PyPy"'] gmpy = ['mpmath[gmpy2]'] +gmp = ['python-gmp>=0.4.0a1'] docs = ['sphinx', 'matplotlib; platform_python_implementation!="PyPy" and python_version<"3.14"', 'sphinxcontrib-autoprogram']