mantaray 0.2.0

Ray-tracing solver for ocean surface gravity waves that integrates the wave ray equations over spatially varying currents and bathymetry.
Documentation
[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.cibuildwheel]
#build = "cp310-*"


[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]
#bindings = "cffi"
#compatibility = "linux"
features = ["pyo3/extension-module"]
module-name = "mantaray._mantaray"
python-source = "python"
#profile = "release"
#features = ["netcdf"]
#manifest-path = "Cargo.toml"
# Strip the library for minimum file size
#strip = true
# Source distribution generator,
# supports cargo (default) and git.
#sdist-generator = "cargo"

#include = [{ path = "path/**/*", format = "sdist" }]
#include = [
#  { path = "include/ray_tracing.h", format = ["sdist","wheel"] },
#  { path = "Cargo.*", format = ["sdist"] },
#]