Skip to content

Commit ef6b156

Browse files
authored
Merge pull request #54 from lanl/treddy_issue_38_version_checking
MAINT: runtime min version enforcement
2 parents 3a2a26b + 5a0c49b commit ef6b156

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

.github/constraints/deps.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
numpy
2-
scipy>=1.7.1
3-
scikit-learn>=1.2.1
1+
numpy>=2.0.0
2+
scipy>=1.13.0
3+
scikit-learn>=1.5.0
4+
packaging>=24.0
45
matplotlib>=3.7.5
56
numpydoc
67
sphinx_copybutton

pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ classifiers = [
2525
"Operating System :: MacOS",
2626
]
2727
dependencies = ["numpy>=2.0.0",
28-
"scikit-learn>=1.2.1"]
28+
"scikit-learn>=1.5.0",
29+
"scipy>=1.13.0",
30+
"packaging>=24.0"]
2931

3032
[project.urls]
3133
source = "https://github.com/lanl/GFDL"

src/gfdl/__init__.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,36 @@
1+
import platform
2+
3+
import numpy as np
4+
import packaging
5+
import scipy
6+
import sklearn
7+
from packaging.version import Version
8+
19
from .model import GFDL
210

311
__all__ = ["GFDL"]
12+
13+
packaging_version = Version(packaging.__version__)
14+
min_packaging_version = "24.0"
15+
if packaging_version < Version(min_packaging_version):
16+
raise ImportError(f"{packaging_version=}, but {min_packaging_version=}")
17+
18+
python_version = Version(platform.python_version())
19+
min_python_version = "3.12"
20+
if python_version < Version(min_python_version):
21+
raise ImportError(f"{python_version=}, but {min_python_version=}")
22+
23+
numpy_version = Version(np.__version__)
24+
min_numpy_version = "2.0.0"
25+
if numpy_version < Version(min_numpy_version):
26+
raise ImportError(f"{numpy_version=}, but {min_numpy_version=}")
27+
28+
sklearn_version = Version(sklearn.__version__)
29+
min_sklearn_version = "1.5.0"
30+
if sklearn_version < Version(min_sklearn_version):
31+
raise ImportError(f"{sklearn_version=}, but {min_sklearn_version=}")
32+
33+
scipy_version = Version(scipy.__version__)
34+
min_scipy_version = "1.13.0"
35+
if scipy_version < Version(min_scipy_version):
36+
raise ImportError(f"{scipy_version=}, but {min_scipy_version=}")

0 commit comments

Comments
 (0)