1{ lib
2, buildPythonPackage
3, fetchPypi
4, pythonOlder
5
6# extras: babel
7, babel
8, flask-babel
9
10# extras: common
11, bcrypt
12, bleach
13, flask-mailman
14, qrcode
15
16# extras: fsqla
17, flask-sqlalchemy
18, sqlalchemy
19, sqlalchemy-utils
20
21# extras: mfa
22, cryptography
23, phonenumbers
24
25# propagates
26, blinker
27, email-validator
28, flask
29, flask-login
30, flask-principal
31, flask-wtf
32, itsdangerous
33, passlib
34
35# tests
36, argon2-cffi
37, flask-mongoengine
38, mongoengine
39, mongomock
40, peewee
41, pony
42, pytestCheckHook
43, python-dateutil
44, zxcvbn
45}:
46
47buildPythonPackage rec {
48 pname = "flask-security-too";
49 version = "5.3.0";
50 format = "setuptools";
51
52 disabled = pythonOlder "3.7";
53
54 src = fetchPypi {
55 pname = "Flask-Security-Too";
56 inherit version;
57 hash = "sha256-n12DCRPqxm8YhFeVrl99BEvdDYNq6rzP662rain3k1Q=";
58 };
59
60 postPatch = ''
61 # This should be removed after updating to version 5.3.0.
62 sed -i '/filterwarnings =/a ignore:pkg_resources is deprecated:DeprecationWarning' pytest.ini
63 '';
64
65 propagatedBuildInputs = [
66 blinker
67 email-validator
68 flask
69 flask-login
70 flask-principal
71 flask-wtf
72 itsdangerous
73 passlib
74 ];
75
76 passthru.optional-dependencies = {
77 babel = [
78 babel
79 flask-babel
80 ];
81 common = [
82 bcrypt
83 bleach
84 flask-mailman
85 qrcode
86 ];
87 fsqla = [
88 flask-sqlalchemy
89 sqlalchemy
90 sqlalchemy-utils
91 ];
92 mfa = [
93 cryptography
94 phonenumbers
95 ];
96 };
97
98 nativeCheckInputs = [
99 argon2-cffi
100 flask-mongoengine
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 pythonImportsCheck = [
116 "flask_security"
117 ];
118
119 meta = with lib; {
120 changelog = "https://github.com/Flask-Middleware/flask-security/blob/${version}/CHANGES.rst";
121 homepage = "https://github.com/Flask-Middleware/flask-security";
122 description = "Simple security for Flask apps (fork)";
123 license = licenses.mit;
124 maintainers = with maintainers; [ gador ];
125 };
126}