2025-03-28 05:42:46 +00:00

60 lines
1.2 KiB
Nix

{
lib,
fetchFromGitHub,
buildPythonPackage,
pythonOlder,
pytestCheckHook,
beancount-black,
beancount-parser,
beanhub-extract,
hatchling,
jinja2,
pydantic,
pytz,
pyyaml,
}:
buildPythonPackage rec {
pname = "beanhub-import";
version = "1.2.0";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "LaunchPlatform";
repo = "beanhub-import";
tag = version;
hash = "sha256-oExJ8BWJmJkJMGGIYp+Xtf0rzUcQKD8YKo51E+KbRN0=";
};
build-system = [ hatchling ];
pythonRelaxDeps = [
# pytz>=2023.1,<2025, but we have 2025.1
"pytz"
];
dependencies = [
beancount-black
beancount-parser
beanhub-extract
jinja2
pydantic
pytz
pyyaml
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "beanhub_import" ];
meta = {
description = "Declarative idempotent rule-based Beancount transaction import engine in Python";
homepage = "https://github.com/LaunchPlatform/beanhub-import/";
changelog = "https://github.com/LaunchPlatform/beanhub-import/releases/tag/${src.tag}";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ fangpen ];
};
}