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