1{ lib
2, buildPythonPackage
3, braintree
4, cryptography
5, django
6, django-phonenumber-field
7, fetchFromGitHub
8, mercadopago
9, pythonOlder
10, requests
11, setuptools-scm
12, sphinx-rtd-theme
13, stripe
14, xmltodict
15}:
16
17buildPythonPackage rec {
18 pname = "django-payments";
19 version = "2.0.0";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "jazzband";
26 repo = "django-payments";
27 rev = "refs/tags/v${version}";
28 hash = "sha256-6WPV08CV+rko/tRnsT5GyTGYaJbiIKTvpisfRwizBIo=";
29 };
30
31 postPatch = ''
32 substituteInPlace setup.py \
33 --replace "django-phonenumber-field[phonenumberslite]" "django-phonenumber-field"
34 '';
35
36 env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
37
38 nativeBuildInputs = [
39 setuptools-scm
40 ];
41
42 propagatedBuildInputs = [
43 django
44 django-phonenumber-field
45 requests
46 ] ++ django-phonenumber-field.optional-dependencies.phonenumbers;
47
48 # require internet connection
49 doCheck = false;
50
51 pythonImportsCheck = [
52 "payments"
53 ];
54
55 passthru.optional-dependencies = {
56 all = [ braintree /* suds-community */ mercadopago cryptography xmltodict stripe ];
57 braintree = [ braintree ];
58 cybersource = [ /* suds-community */ ];
59 docs = [ sphinx-rtd-theme ];
60 mercadopago = [ mercadopago ];
61 sagepay = [ cryptography ];
62 sofort = [ xmltodict ];
63 stripe = [ stripe ];
64 };
65
66 meta = with lib; {
67 description = "Universal payment handling for Django.";
68 homepage = "https://github.com/jazzband/django-payments/";
69 changelog = "https://github.com/jazzband/django-payments/releases/tag/v${version}";
70 license = licenses.bsd3;
71 maintainers = with maintainers; [ derdennisop ];
72 };
73}