61 lines
1.2 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
graphviz,
# build-system
pdm-backend,
# tests
pytest-cov-stub,
pytestCheckHook,
pyyaml,
test2ref,
fontconfig,
}:
buildPythonPackage rec {
pname = "anytree";
version = "2.13.0";
pyproject = true;
src = fetchFromGitHub {
owner = "c0fec0de";
repo = "anytree";
tag = version;
hash = "sha256-kFNYJMWagpqixs84+AaNkh/28asLBJhibTP8LEEe4XY=";
};
postPatch = ''
substituteInPlace src/anytree/exporter/dotexporter.py \
--replace-fail \
'cmd = ["dot"' \
'cmd = ["${lib.getExe' graphviz "dot"}"'
'';
build-system = [ pdm-backend ];
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
pyyaml
test2ref
];
# Tests print “Fontconfig error: Cannot load default config file”
preCheck = ''
export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
'';
pythonImportsCheck = [ "anytree" ];
meta = {
description = "Powerful and Lightweight Python Tree Data Structure";
homepage = "https://github.com/c0fec0de/anytree";
changelog = "https://github.com/c0fec0de/anytree/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maitnainers; [ ];
};
}