[build-system]
requires = [
"maturin>=1.10,<2.0",
]
build-backend = "maturin"
[project]
name = "mantaray"
version = "0.2.1"
authors = [
{email = "bryceirving@mines.edu", name = "Bryce Irving"},
{email = "guilherme@castelao.net", name = "Guilherme Castelao"},
{email = "nicholas.pizzo@uri.edu", name = "Nicholas Pizzo"},
{email = "villasboas@mines.edu", name = "Bia Villas Boas"}
]
license = "MIT OR Apache-2.0"
description = "Tracing rays"
requires-python = ">=3.10"
classifiers = [
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
dependencies = [
"cffi>=1.14.0",
"xarray>=2023",
"pooch>=1.8.2",
"tqdm>=4.67.1",
]
[project.optional-dependencies]
examples = [
"cmocean>=4.0.3",
"jupyterlab>=4.4.5",
"netcdf4>=1.5.7",
"matplotlib>=3.9.1",
]
netcdf = ["netcdf4>=1.5.7"]
dev = [
"uv>=0.8",
]
test = [
"pytest>=7.0",
"pytest-cov>=3.0",
"pytest-xdist>=3.0",
"netcdf4>=1.5.7",
]
[tool.pixi.workspace]
channels = ["conda-forge"]
platforms = ["osx-arm64", "linux-64", "win-64"]
[tool.pixi.tasks]
build = "cargo build"
develop = "maturin develop"
test = "cargo test"
fmt = "cargo fmt"
lint = { cmd = "cargo clippy", depends-on = ["fmt"], env = {} }
wheel = "maturin build"
[tool.pixi.feature.docs.tasks]
python-docs = { cmd = "make html", cwd = "docs", depends-on = ["develop"] }
[tool.pixi.feature.ptest.tasks]
pytest = { cmd = "pytest python/tests", depends-on = ["develop"], env = {} }
[tool.pixi.dependencies]
maturin = ">=1.10.2,<2"
rust = ">=1.91.1,<1.92"
python = ">=3.12"
cffi = ">=1.16.0,<1.17"
pip = ">=24.0,<25"
xarray = ">=2023"
netcdf4 = ">=1.7.2,<2"
matplotlib = ">=3.9.1,<3.10"
cmake = ">=3.30.5,<4"
pooch = ">=1.8.2,<2"
tqdm = ">=4.67.1,<5"
[tool.pixi.target.osx-arm64.build-dependencies]
m4 = ">=1.4.18,<1.5"
[tool.pixi.environments]
default = { solve-group = "default" }
dev = { features = ["dev", "docs", "examples", "ptest"], solve-group = "default" }
docs = { features = ["docs", "examples"], solve-group = "default" }
test = { features = ["ptest"], solve-group = "default" }
examples = { features = ["examples"], solve-group = "default" }
[tool.pixi.feature.dev.dependencies]
ruff = ">=0.14.7,<0.15"
ipython = ">=8.0"
uv = ">=0.9.13,<0.10"
[tool.pixi.feature.docs.dependencies]
furo = ">=2024.8.6,<2025"
myst-parser = ">=4.0.0,<5"
sphinx-copybutton = ">=0.5.2,<0.6"
sphinx-design = ">=0.6.1,<0.7"
sphinx-inline-tabs = ">=2023.4.21,<2024"
sphinx-tabs = ">=3.4.1,<4"
sphinxcontrib-mermaid = ">=1.0.0,<2"
make = ">=4.4.1,<5"
pandoc = ">=3.6.4,<4"
nbconvert = ">=7.16.6,<8"
myst-sphinx-gallery = ">=0.3.0,<0.4"
[tool.pixi.feature.ptest.dependencies]
pytest = ">=7.0"
netcdf4 = ">=1.7.2,<2"
pytest-cov = ">=7.0.0,<8"
pytest-xdist = ">=3.8.0,<4"
[tool.pixi.feature.examples.dependencies]
jupyterlab = ">=4.4.7,<5"
cmocean = ">=4.0.3,<5"
[tool.maturin]
features = ["pyo3/extension-module"]
module-name = "mantaray._mantaray"
python-source = "python"