1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 pythonOlder,
6 pytestCheckHook,
7 beancount-black,
8 beancount-parser,
9 beanhub-extract,
10 jinja2,
11 poetry-core,
12 pydantic,
13 pytz,
14 pyyaml,
15}:
16
17buildPythonPackage rec {
18 pname = "beanhub-import";
19 version = "0.3.4";
20 pyproject = true;
21
22 disabled = pythonOlder "3.9";
23
24 src = fetchFromGitHub {
25 owner = "LaunchPlatform";
26 repo = "beanhub-import";
27 rev = "refs/tags/${version}";
28 hash = "sha256-igaW8vFUYagBfVQXL1Ulo7uhGilbOxxuyZV9Eda/Gto=";
29 };
30
31 build-system = [ poetry-core ];
32
33 dependencies = [
34 beancount-black
35 beancount-parser
36 beanhub-extract
37 jinja2
38 pydantic
39 pytz
40 pyyaml
41 ];
42
43 nativeCheckInputs = [ pytestCheckHook ];
44
45 pythonImportsCheck = [ "beanhub_import" ];
46
47 meta = {
48 description = "Declarative idempotent rule-based Beancount transaction import engine in Python";
49 homepage = "https://github.com/LaunchPlatform/beanhub-import/";
50 changelog = "https://github.com/LaunchPlatform/beanhub-import/releases/tag/${version}";
51 license = with lib.licenses; [ mit ];
52 maintainers = with lib.maintainers; [ fangpen ];
53 };
54}