1{ lib
2, stdenv
3, apscheduler
4, bitstring
5, buildPythonPackage
6, cffi
7, ecdsa
8, fetchFromGitHub
9, monero
10, poetry-core
11, pypng
12, pyqrcode
13, pyramid
14, pyramid-jinja2
15, pysocks
16, pytestCheckHook
17, pythonOlder
18, pythonRelaxDepsHook
19, requests
20, tzlocal
21, waitress
22, webtest
23, yoyo-migrations
24}:
25
26buildPythonPackage rec {
27 pname = "cypherpunkpay";
28 version = "1.0.16";
29 format = "pyproject";
30
31 disabled = pythonOlder "3.7";
32
33 src = fetchFromGitHub {
34 owner = "CypherpunkPay";
35 repo = "CypherpunkPay";
36 rev = "refs/tags/v${version}";
37 hash = "sha256-X0DB0PVwR0gRnt3jixFzglWAOPKBMvqTOG6pK6OJ03w=";
38 };
39
40 pythonRelaxDeps = [
41 "bitstring"
42 "cffi"
43 "ecdsa"
44 "pypng"
45 "tzlocal"
46 "yoyo-migrations"
47 ];
48
49 nativeBuildInputs = [
50 poetry-core
51 pythonRelaxDepsHook
52 ];
53
54 propagatedBuildInputs = [
55 apscheduler
56 bitstring
57 cffi
58 ecdsa
59 monero
60 pypng
61 pyqrcode
62 pyramid
63 pyramid-jinja2
64 pysocks
65 requests
66 tzlocal
67 waitress
68 yoyo-migrations
69 ];
70
71 nativeCheckInputs = [
72 pytestCheckHook
73 webtest
74 ];
75
76 pytestFlagsArray = [
77 "-W"
78 "ignore::DeprecationWarning"
79 ];
80
81 disabledTestPaths = [
82 # performance test
83 "tests/unit/tools/pbkdf2_test.py"
84 # tests require network connection
85 "tests/network/explorers/bitcoin"
86 "tests/network/monero/monero_address_transactions_db_test.py"
87 "tests/network/net/http_client"
88 "tests/network/prices"
89 # tests require bitcoind running
90 "tests/network/full_node_clients"
91 # tests require lnd running
92 "tests/network/ln"
93 # tests require tor running
94 "tests/network/monero/monero_test.py"
95 "tests/network/net/tor_client"
96 "tests/network/usecases/calc_monero_address_credits_uc_test.py"
97 "tests/network/usecases/fetch_monero_txs_from_open_node_uc_test.py"
98 # tests require the full environment running
99 "tests/acceptance/views"
100 "tests/acceptance/views_admin"
101 "tests/acceptance/views_donations"
102 "tests/acceptance/views_dummystore"
103 ];
104
105 pythonImportsCheck = [
106 "cypherpunkpay"
107 ];
108
109 meta = with lib; {
110 description = "Modern self-hosted software for accepting Bitcoin";
111 homepage = "https://github.com/CypherpunkPay/CypherpunkPay";
112 changelog = "https://github.com/CypherpunkPay/CypherpunkPay/releases/tag/v${version}";
113 license = with licenses; [ mit /* or */ unlicense ];
114 maintainers = with maintainers; [ prusnak ];
115 };
116}