Skip to content

Commit f458c74

Browse files
committed
tests: test installed sympy version
1 parent 3c0887d commit f458c74

3 files changed

Lines changed: 23 additions & 20 deletions

File tree

.github/workflows/pytest-core-nompi.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,16 @@ jobs:
166166
python3 -m pip install ${{ env.PIPFLAGS }} sympy==${{matrix.sympy}}
167167
python3 -m pip install ${{ env.PIPFLAGS }} -e .[tests,extras]
168168
169+
- name: Check sympy version
170+
if: "!contains(matrix.name, 'docker')"
171+
run: |
172+
full=$(pip show sympy | awk '/^Version:/ {print $2}')
173+
majmin=${full%.*}
174+
if [[ $majmin != ${{ matrix.sympy }} ]]; then
175+
echo "::error::Sympy version mismatch: expected" ${{ matrix.sympy }} " got " $full
176+
exit 1
177+
fi
178+
169179
- name: Check configuration
170180
run: |
171181
${{ env.RUN_CMD }} python3 -c "from devito import configuration; print(''.join(['%s: %s \n' % (k, v) for (k, v) in configuration.items()]))"

pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[build-system]
2+
requires = ["setuptools>=42", "wheel", "sympy"]
3+
build-backend = "setuptools.build_meta"

setup.py

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
11
import versioneer
22
from packaging.version import Version
33
import os
4-
5-
try:
6-
import importlib.metadata as metadata
7-
get_version = lambda x: metadata.version(x)
8-
PkgNotFound = metadata.PackageNotFoundError
9-
except ImportError:
10-
import pkg_resources
11-
get_version = lambda x: pkg_resources.get_distribution(x).version
12-
PkgNotFound = pkg_resources.DistributionNotFound
13-
144
from setuptools import setup, find_packages
155

166

@@ -25,21 +15,21 @@ def min_max(pkgs, pkg_name):
2515

2616
def numpy_compat(required):
2717
new_reqs = [r for r in required if "numpy" not in r and "sympy" not in r]
28-
sympy_lb, sympy_ub = min_max(required, "sympy")
2918
numpy_lb, numpy_ub = min_max(required, "numpy")
3019

3120
# Due to api changes in numpy 2.0, it requires sympy 1.12.1 at the minimum
3221
# Check if sympy is installed and enforce numpy version accordingly.
3322
# If sympy isn't installed, enforce sympy>=1.12.1 and numpy>=2.0
34-
try:
35-
sympy_version = Version(get_version("sympy"))
36-
min_ver2 = Version("1.12.1")
37-
if sympy_version < min_ver2:
38-
new_reqs.extend([f"numpy>{numpy_lb},<2.0", f"sympy=={sympy_version}"])
39-
else:
40-
new_reqs.extend([f"numpy>=2.0,<{numpy_ub}", f"sympy=={sympy_version}"])
41-
except PkgNotFound:
42-
new_reqs.extend([f"sympy>=1.12.1,<{sympy_ub}", f"numpy>=2.0,<{numpy_ub}"])
23+
# try:
24+
import sympy
25+
sympy_version = Version(sympy.__version__)
26+
min_ver2 = Version("1.12.1")
27+
if sympy_version < min_ver2:
28+
new_reqs.extend([f"numpy>{numpy_lb},<2.0", f"sympy=={sympy_version}"])
29+
else:
30+
new_reqs.extend([f"numpy>=2.0,<{numpy_ub}", f"sympy=={sympy_version}"])
31+
# except ImportError:
32+
# new_reqs.extend([f"sympy>=1.12.1,<{sympy_ub}", f"numpy>=2.0,<{numpy_ub}"])
4333

4434
return new_reqs
4535

0 commit comments

Comments
 (0)