[workspace]
members = ["py"]

[workspace.package]
version = "0.2.2"
edition = "2021"
rust-version = "1.88"
license = "MIT"
repository = "https://github.com/kkollsga/petekio"
authors = ["Kristian dF Kollsgård <kkollsg@gmail.com>"]

[package]
name = "petekio"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
description = "Subsurface data ingestion + structure layer: surfaces, wells, points, polygons with loading, interpolation, and statistics."
readme = "README.md"
keywords = ["subsurface", "geoscience", "geology", "seismic", "irap"]
categories = ["science", "parsing"]
# Keep the published crate lean — the Python wheel sources + CI live in the repo
# but aren't part of the Rust library. (Workspace member `py/` is auto-excluded.)
# Keep the published crate lean and ship NO test/example data: tests/ (golden
# fixtures) and examples/ (notebooks + sample data) aren't part of the library a
# downstream user consumes. (benches/ stays — a declared [[bench]] target.)
exclude = [
    "/python", "/pyproject.toml", "/.github", "/.cargo", "/dist", "/.claude",
    "/CLAUDE.md", "/tests", "/examples",
]

[dependencies]
thiserror = "2"
ndarray = "0.17"
indexmap = "2"
las_rs = "0.2"
csv = "1"
geo = "0.33"
geozero = { version = "0.15", features = ["with-geo", "with-geojson", "with-wkt", "with-shp"] }
rstar = "0.13"

[features]
default = []
# f32 storage typedef for memory-bound large surfaces (SPEC "Storage
# precision"). Wiring deferred — API.md locks `Array2<f64>` for now.
f32 = []

[dev-dependencies]
approx = "0.5"
criterion = "0.5"

[[bench]]
name = "gridding"
harness = false
