nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at flake-libs 142 lines 2.5 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 pythonOlder, 6 flit-core, 7 8 # extras: babel 9 babel, 10 flask-babel, 11 12 # extras: common 13 argon2-cffi, 14 bcrypt, 15 bleach, 16 flask-mailman, 17 18 # extras: fsqla 19 flask-sqlalchemy, 20 sqlalchemy, 21 sqlalchemy-utils, 22 23 # extras: mfa 24 cryptography, 25 phonenumberslite, 26 webauthn, 27 qrcode, 28 29 # propagates 30 email-validator, 31 flask, 32 flask-login, 33 flask-principal, 34 flask-wtf, 35 libpass, 36 markupsafe, 37 passlib, 38 importlib-resources, 39 wtforms, 40 41 # tests 42 authlib, 43 flask-sqlalchemy-lite, 44 freezegun, 45 mongoengine, 46 mongomock, 47 peewee, 48 pony, 49 pytestCheckHook, 50 requests, 51 zxcvbn, 52}: 53 54buildPythonPackage rec { 55 pname = "flask-security"; 56 version = "5.6.2"; 57 pyproject = true; 58 59 disabled = pythonOlder "3.9"; 60 61 src = fetchFromGitHub { 62 owner = "pallets-eco"; 63 repo = "flask-security"; 64 tag = version; 65 hash = "sha256-mEl98Yp4USKu+z636yAb5p5qPBzcdQraZ/XaPbDoGWU="; 66 }; 67 68 build-system = [ flit-core ]; 69 70 dependencies = [ 71 email-validator 72 flask 73 flask-login 74 flask-principal 75 flask-wtf 76 markupsafe 77 (if pythonOlder "3.12" then passlib else libpass) 78 importlib-resources 79 wtforms 80 ]; 81 82 optional-dependencies = { 83 babel = [ 84 babel 85 flask-babel 86 ]; 87 common = [ 88 argon2-cffi 89 bcrypt 90 bleach 91 flask-mailman 92 ]; 93 fsqla = [ 94 flask-sqlalchemy 95 sqlalchemy 96 sqlalchemy-utils 97 ]; 98 mfa = [ 99 cryptography 100 phonenumberslite 101 webauthn 102 qrcode 103 ]; 104 }; 105 106 nativeCheckInputs = 107 [ 108 authlib 109 flask-sqlalchemy-lite 110 freezegun 111 mongoengine 112 mongomock 113 peewee 114 pony 115 pytestCheckHook 116 requests 117 zxcvbn 118 ] 119 ++ optional-dependencies.babel 120 ++ optional-dependencies.common 121 ++ optional-dependencies.fsqla 122 ++ optional-dependencies.mfa; 123 124 preCheck = '' 125 pybabel compile --domain flask_security -d flask_security/translations 126 ''; 127 128 disabledTests = [ 129 # needs /etc/resolv.conf 130 "test_login_email_whatever" 131 ]; 132 133 pythonImportsCheck = [ "flask_security" ]; 134 135 meta = with lib; { 136 changelog = "https://github.com/pallets-eco/flask-security/blob/${src.tag}/CHANGES.rst"; 137 homepage = "https://github.com/pallets-eco/flask-security"; 138 description = "Quickly add security features to your Flask application"; 139 license = licenses.mit; 140 maintainers = with maintainers; [ gador ]; 141 }; 142}