Skip to content

Commit 6ca83aa

Browse files
committed
make numpy a typing-only dependency
* wrap numpy imports in TYPE_CHECKING * remove numpy from runtime dependencies * add numpy as a testing requirement * update CI/nox configuration
1 parent 742dcfa commit 6ca83aa

File tree

6 files changed

+17
-9
lines changed

6 files changed

+17
-9
lines changed

noxfile.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
@nox.session
1313
def test(session: nox.Session) -> None:
1414
"""Run the tests."""
15-
session.install("-r", "requirements/requires.txt", "-r", "requirements/testing.txt")
16-
session.install(".", "--no-deps")
15+
session.install("-r", "requirements/testing.txt")
16+
session.install(".")
1717

1818
session.run(
1919
"coverage",
@@ -30,8 +30,7 @@ def test(session: nox.Session) -> None:
3030
@nox.session(name="test-cli")
3131
def test_cli(session: nox.Session) -> None:
3232
"""Test the command line interface."""
33-
session.install("-r", "requirements/requires.txt")
34-
session.install(".", "--no-deps")
33+
session.install(".")
3534
session.run("bmi-render", "--help")
3635
session.run("bmi-render", "--version")
3736

pyproject.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ classifiers = [
2929
"Topic :: Scientific/Engineering :: Physics",
3030
]
3131
dependencies = [
32-
"numpy",
3332
]
3433
dynamic = [
3534
"version",
@@ -57,6 +56,15 @@ content-type = "text/markdown"
5756
[tool.setuptools.dynamic.version]
5857
attr = "bmipy._version.__version__"
5958

59+
[project.optional-dependencies]
60+
dev = ["nox"]
61+
testing = [
62+
"coveralls",
63+
"numpy",
64+
"pytest-cov",
65+
"pytest",
66+
]
67+
6068
[tool.setuptools.packages.find]
6169
where = [
6270
"src",

requirements.in

Lines changed: 0 additions & 1 deletion
This file was deleted.

requirements/requires.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

requirements/testing.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
coverage==7.13.5
2+
numpy==2.2.6
23
pytest==9.0.2

src/bmipy/bmi.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88

99
from abc import ABC
1010
from abc import abstractmethod
11+
from typing import TYPE_CHECKING
1112
from typing import Any
1213

13-
import numpy as np
14-
from numpy.typing import NDArray
14+
if TYPE_CHECKING:
15+
import numpy as np
16+
from numpy.typing import NDArray
1517

1618

1719
class Bmi(ABC):

0 commit comments

Comments
 (0)