Files
nixpkgs/pkgs/development/python-modules/nutils/default.nix
2025-07-24 13:55:40 +02:00

78 lines
1.5 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
flit-core,
appdirs,
matplotlib,
meshio,
numpy,
nutils-poly,
scipy,
stringly,
treelog,
pytestCheckHook,
pythonOlder,
pkgs,
}:
buildPythonPackage rec {
pname = "nutils";
version = "9.1";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "evalf";
repo = "nutils";
tag = "v${version}";
hash = "sha256-NmWoRDYOfSweqUhw0KTdXubWgXmVr+odrs1dMLXdHEI=";
};
build-system = [ flit-core ];
dependencies = [
appdirs
numpy
nutils-poly
stringly
treelog
];
optional-dependencies = {
export-mpl = [ matplotlib ];
# TODO: matrix-mkl = [ mkl ];
matrix-scipy = [ scipy ];
import-gmsh = [ meshio ];
};
pythonRelaxDeps = [ "psutil" ];
nativeCheckInputs = [
pkgs.graphviz
pytestCheckHook
]
++ lib.flatten (lib.attrValues optional-dependencies);
disabledTests = [
# Error: invalid value 'x' for farg: loading 'x' as float
"run.test_badvalue"
"choose.test_badvalue"
# ModuleNotFoundError: No module named 'stringly'
"picklability.test_basis"
"picklability.test_domain"
"picklability.test_geom"
];
pythonImportsCheck = [ "nutils" ];
meta = with lib; {
description = "Numerical Utilities for Finite Element Analysis";
changelog = "https://github.com/evalf/nutils/releases/tag/${src.tag}";
homepage = "https://www.nutils.org/";
license = licenses.mit;
maintainers = with maintainers; [ Scriptkiddi ];
};
}