1{ lib
2, buildPythonPackage
3, fetchPypi
4, pythonOlder
5, setuptools
6
7# extras: babel
8, babel
9, flask-babel
10
11# extras: common
12, bcrypt
13, bleach
14, flask-mailman
15
16# extras: fsqla
17, flask-sqlalchemy
18, sqlalchemy
19, sqlalchemy-utils
20
21# extras: mfa
22, cryptography
23, phonenumbers
24, webauthn
25, qrcode
26
27# propagates
28, email-validator
29, flask
30, flask-login
31, flask-principal
32, flask-wtf
33, passlib
34, importlib-resources
35, wtforms
36
37# tests
38, argon2-cffi
39, mongoengine
40, mongomock
41, peewee
42, pony
43, pytestCheckHook
44, python-dateutil
45, zxcvbn
46}:
47
48buildPythonPackage rec {
49 pname = "flask-security-too";
50 version = "5.3.2";
51 pyproject = true;
52
53 disabled = pythonOlder "3.7";
54
55 src = fetchPypi {
56 pname = "Flask-Security-Too";
57 inherit version;
58 hash = "sha256-wLUHXfDWSp7zWwTIjTH79AWlkkNzb21tChpLSEWr8+U=";
59 };
60
61 nativeBuildInputs = [
62 setuptools
63 ];
64
65 propagatedBuildInputs = [
66 email-validator
67 flask
68 flask-login
69 flask-principal
70 flask-wtf
71 passlib
72 importlib-resources
73 wtforms
74 ];
75
76 passthru.optional-dependencies = {
77 babel = [
78 babel
79 flask-babel
80 ];
81 common = [
82 bcrypt
83 bleach
84 flask-mailman
85 ];
86 fsqla = [
87 flask-sqlalchemy
88 sqlalchemy
89 sqlalchemy-utils
90 ];
91 mfa = [
92 cryptography
93 phonenumbers
94 webauthn
95 qrcode
96 ];
97 };
98
99 nativeCheckInputs = [
100 argon2-cffi
101 mongoengine
102 mongomock
103 peewee
104 pony
105 pytestCheckHook
106 python-dateutil
107 zxcvbn
108 ]
109 ++ passthru.optional-dependencies.babel
110 ++ passthru.optional-dependencies.common
111 ++ passthru.optional-dependencies.fsqla
112 ++ passthru.optional-dependencies.mfa;
113
114
115 disabledTests = [
116 # needs /etc/resolv.conf
117 "test_login_email_whatever"
118 ];
119
120 pythonImportsCheck = [
121 "flask_security"
122 ];
123
124 meta = with lib; {
125 changelog = "https://github.com/Flask-Middleware/flask-security/blob/${version}/CHANGES.rst";
126 homepage = "https://github.com/Flask-Middleware/flask-security";
127 description = "Simple security for Flask apps (fork)";
128 license = licenses.mit;
129 maintainers = with maintainers; [ gador ];
130 };
131}