Skip to content

Install

From PyPI

pip install ovvo-nns

The distribution package is ovvo-nns; the import package is nns:

import nns

print(nns.__version__)

Installing ovvo-nns includes the Matplotlib plotting API (nns.plotting). Matplotlib is a regular dependency and is imported lazily, so import nns stays light. See the plot parity policy for details.

Requirements

Requirement Value
Python >=3.11 (CPython 3.11, 3.12, 3.13, 3.14)
Runtime dependencies NumPy, SciPy, Matplotlib
R at runtime Not required

R is used only for parity tests and local cache regeneration, never at normal runtime.

Wheels vs. source builds

Published wheels should be preferred when available. They ship the optional private native extension (nns._nnscore) prebuilt for supported platforms.

Source builds compile the optional native extension with scikit-build-core and nanobind, which require a C++17 toolchain. Public APIs keep Python implementations and explicit fallback behavior, so the native extension remains a private, benchmark-backed implementation detail rather than a public API.

Development install

uv sync --group dev
uv run pytest
uv run ruff check .
uv run mypy

The default parity suite is cache-backed and does not require Rscript. Rscript and the R NNS package are needed only when regenerating parity caches or running live R comparison scripts.