interpn 0.8.2

N-dimensional interpolation/extrapolation methods, no-std and no-alloc compatible.
Documentation
[build-system]
requires = ["maturin>=1.7,<2.0"]
build-backend = "maturin"

[project]
name = "interpn"
version = "0.8.2"
description = "N-dimensional interpolation/extrapolation methods"
authors = [{ name = "James Logan", email = "jlogan03@gmail.com" }]
readme = "README.md"
license = "MIT OR Apache-2.0"
license-files = ["LICENSE-MIT", "LICENSE-APACHE"]
requires-python = ">=3.10"
classifiers = [
    "Programming Language :: Rust",
    "Programming Language :: Python :: Implementation :: CPython",
    "Programming Language :: Python :: Implementation :: PyPy",
]
dependencies = [
    "numpy >= 1.21.2",
]

[project.urls]
repository = "https://github.com/jlogan03/interpn"
documentation = "https://interpn.readthedocs.io/"
changelog = "https://github.com/jlogan03/interpn/blob/main/CHANGELOG.md"

[project.optional-dependencies]
pydantic = ["pydantic >= 2.2.0"]

[dependency-groups]
test = [
    "pytest >= 9",
    "pytest-cov >= 7.0.0",
    "ruff >= 0.13.3",
    "pyright == 1.1.407",
    "mktestdocs == 0.2.1",
    "scipy >= 1.11.4",
    "kaleido==0.2.1",
    "plotly>=5,<6",
]
bench = [
    "scipy >= 1.11.4",
    "kaleido==0.2.1",
    "plotly>=5,<6",
    "memory_profiler >= 0.61.0",
]
doc = [
    "mkdocs >= 1.5.3",
    "mkdocstrings-python >= 1.7.5",
    "mkdocs-material >= 9.4.10"
]

[tool.uv]
cache-keys = [
    { file = "pyproject.toml" },
    { file = "Cargo.toml" },
    { file = ".cargo/config.toml" },
    { file = "**/*.rs" },
    { file = "scripts/pgo-profiles/interpn.profdata" },
    { env = "RUSTFLAGS" },
]
no-build-package = [
    "numpy",
    "pydantic-core",
    "scipy",
    "coverage",
    "ruff",
]

[tool.maturin]
features = ["python", "fma"]
module-name = "interpn.interpn"
python-packages = ["interpn"]
python-source = "src"
profile = "release"

#rustc-args = [
#    "-Cprofile-use=./scripts/pgo-profiles/interpn.profdata",
#    "-Cllvm-args=-pgo-warn-missing-function"
#]

include = [
  { path = "all", format = ["sdist", "wheel"] },
]

[tool.pytest.ini_options]
addopts = "--cov=interpn --cov-report html --cov-fail-under=94"

[tool.ruff.lint]
select = [
    # pycodestyle
    "E",
    # Pyflakes
    "F",
    # pyupgrade
    "UP",
    # flake8-bugbear
    "B",
    # flake8-simplify
    "SIM",
]