1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 isPy3k,
6 beautifulsoup4,
7 bottle,
8 chardet,
9 python-dateutil,
10 google-api-python-client,
11 google-auth-oauthlib,
12 lxml,
13 oauth2client,
14 ply,
15 pytest,
16 python-magic,
17 requests,
18}:
19
20buildPythonPackage rec {
21 version = "2.3.6";
22 format = "setuptools";
23 pname = "beancount";
24
25 disabled = !isPy3k;
26
27 src = fetchPypi {
28 inherit pname version;
29 hash = "sha256-gB+Tvta1fS4iQ2aIxInVob8fduIQ887RhoB1fmDTR1o=";
30 };
31
32 # Tests require files not included in the PyPI archive.
33 doCheck = false;
34
35 propagatedBuildInputs = [
36 beautifulsoup4
37 bottle
38 chardet
39 python-dateutil
40 google-api-python-client
41 google-auth-oauthlib
42 lxml
43 oauth2client
44 ply
45 python-magic
46 requests
47 # pytest really is a runtime dependency
48 # https://github.com/beancount/beancount/blob/v2/setup.py#L81-L82
49 pytest
50 ];
51
52 # beancount cannot be directly bumped to 3.x
53 # e.g. https://github.com/NixOS/nixpkgs/issues/380197
54 passthru.skipBulkUpdate = true;
55
56 meta = with lib; {
57 homepage = "https://github.com/beancount/beancount";
58 description = "Double-entry bookkeeping computer language";
59 longDescription = ''
60 A double-entry bookkeeping computer language that lets you define
61 financial transaction records in a text file, read them in memory,
62 generate a variety of reports from them, and provides a web interface.
63 '';
64 license = licenses.gpl2Only;
65 maintainers = with maintainers; [
66 sharzy
67 polarmutex
68 ];
69 };
70}