1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5
6# build-system
7, setuptools
8
9# dependencies
10, django
11, python3-openid
12, requests
13, requests-oauthlib
14, pyjwt
15
16# optional-dependencies
17, python3-saml
18, qrcode
19
20# tests
21, pillow
22, pytestCheckHook
23, pytest-django
24
25# passthru tests
26, dj-rest-auth
27}:
28
29buildPythonPackage rec {
30 pname = "django-allauth";
31 version = "0.57.0";
32 format = "pyproject";
33
34 disabled = pythonOlder "3.7";
35
36 src = fetchFromGitHub {
37 owner = "pennersr";
38 repo = pname;
39 rev = version;
40 hash = "sha256-zhKqvm43rw28UKNFdfJ2C1dIeZfPqmchb1rJykm1lx4=";
41 };
42
43 nativeBuildInputs = [
44 setuptools
45 ];
46
47 propagatedBuildInputs = [
48 django
49 python3-openid
50 pyjwt
51 requests
52 requests-oauthlib
53 ]
54 ++ pyjwt.optional-dependencies.crypto;
55
56 passthru.optional-dependencies = {
57 saml = [
58 python3-saml
59 ];
60 mfa = [
61 qrcode
62 ];
63 };
64
65 pythonImportsCheck = [
66 "allauth"
67 ];
68
69 nativeCheckInputs = [
70 pillow
71 pytestCheckHook
72 pytest-django
73 ]
74 ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
75
76 passthru.tests = {
77 inherit dj-rest-auth;
78 };
79
80 meta = with lib; {
81 changelog = "https://github.com/pennersr/django-allauth/blob/${version}/ChangeLog.rst";
82 description = "Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication";
83 downloadPage = "https://github.com/pennersr/django-allauth";
84 homepage = "https://www.intenct.nl/projects/django-allauth";
85 license = licenses.mit;
86 maintainers = with maintainers; [ derdennisop ];
87 };
88}