From d7948dd494e89fd4c179f7a4118cf996c946c98f Mon Sep 17 00:00:00 2001 From: mcflugen Date: Sat, 28 Mar 2026 16:17:59 -0600 Subject: [PATCH] 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 --- noxfile.py | 3 +-- pyproject.toml | 3 ++- requirements.in | 1 - requirements/requires.txt | 1 - src/bmipy/bmi.py | 6 ++++-- 5 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 requirements.in delete mode 100644 requirements/requires.txt diff --git a/noxfile.py b/noxfile.py index af0e08f..e44b1f9 100644 --- a/noxfile.py +++ b/noxfile.py @@ -29,8 +29,7 @@ def test(session: nox.Session) -> None: @nox.session(name="test-cli") def test_cli(session: nox.Session) -> None: """Test the command line interface.""" - session.install("-r", "requirements/requires.txt") - session.install(".", "--no-deps") + session.install(".") session.run("bmi-render", "--help") session.run("bmi-render", "--version") diff --git a/pyproject.toml b/pyproject.toml index 083e77b..2d94c66 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,15 +30,16 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics", ] dependencies = [ - "numpy", ] dynamic = [ "readme", ] [project.optional-dependencies] +dev = ["nox"] testing = [ "coverage", + "numpy", "pytest", ] diff --git a/requirements.in b/requirements.in deleted file mode 100644 index 24ce15a..0000000 --- a/requirements.in +++ /dev/null @@ -1 +0,0 @@ -numpy diff --git a/requirements/requires.txt b/requirements/requires.txt deleted file mode 100644 index af47163..0000000 --- a/requirements/requires.txt +++ /dev/null @@ -1 +0,0 @@ -numpy==1.26.3 diff --git a/src/bmipy/bmi.py b/src/bmipy/bmi.py index 4e84712..87094be 100644 --- a/src/bmipy/bmi.py +++ b/src/bmipy/bmi.py @@ -8,10 +8,12 @@ from abc import ABC from abc import abstractmethod +from typing import TYPE_CHECKING from typing import Any -import numpy as np -from numpy.typing import NDArray +if TYPE_CHECKING: + import numpy as np + from numpy.typing import NDArray class Bmi(ABC):