2025-07-24 13:55:40 +02:00

78 lines
1.3 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
cython,
hatch-vcs,
hatchling,
# dependencies
emcee,
gstools-cython,
hankel,
meshio,
numpy,
pyevtk,
scipy,
# optional dependencies
matplotlib,
pyvista,
# tests
pytestCheckHook,
pytest-cov-stub,
}:
buildPythonPackage rec {
pname = "gstools";
version = "1.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "GeoStat-Framework";
repo = "GSTools";
tag = "v${version}";
hash = "sha256-rQ7mSa1BWAaRiiE6aQD6jl8BktihY9bjFJV+5eT9n/M=";
};
build-system = [
hatch-vcs
hatchling
];
dependencies = [
emcee
gstools-cython
hankel
meshio
numpy
pyevtk
scipy
];
optional-dependencies = {
plotting = [
matplotlib
pyvista
];
};
pythonImportsCheck = [ "gstools" ];
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
]
++ lib.flatten (lib.attrValues optional-dependencies);
meta = {
description = "Geostatistical toolbox";
homepage = "https://github.com/GeoStat-Framework/GSTools";
changelog = "https://github.com/GeoStat-Framework/GSTools/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.lgpl3Only;
maintainers = with lib.maintainers; [ sigmanificient ];
};
}