1{ lib
2, buildPythonPackage
3, fetchPypi
4, apispec
5, colorama
6, click
7, email_validator
8, fetchpatch
9, flask
10, flask-babel
11, flask_login
12, flask-openid
13, flask_sqlalchemy
14, flask_wtf
15, flask-jwt-extended
16, jsonschema
17, marshmallow
18, marshmallow-enum
19, marshmallow-sqlalchemy
20, python-dateutil
21, prison
22, pyjwt
23, pyyaml
24, sqlalchemy-utils
25}:
26
27buildPythonPackage rec {
28 pname = "flask-appbuilder";
29 version = "3.3.0";
30
31 src = fetchPypi {
32 pname = "Flask-AppBuilder";
33 inherit version;
34 sha256 = "00dsfv1apl6483wy20aj91f9h5ak2casbx5vcajv2nd3i7c7v8gx";
35 };
36
37 patches = [
38 # https://github.com/dpgaspar/Flask-AppBuilder/pull/1610
39 (fetchpatch {
40 name = "flask_jwt_extended-and-pyjwt-patch";
41 url = "https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch";
42 sha256 = "sha256-ZpY8+2Hoz3z01GVtw2OIbQcsmAwa7iwilFWzgcGhY1w=";
43 includes = [ "flask_appbuilder/security/manager.py" "setup.py" ];
44 })
45 ];
46
47 propagatedBuildInputs = [
48 apispec
49 colorama
50 click
51 email_validator
52 flask
53 flask-babel
54 flask_login
55 flask-openid
56 flask_sqlalchemy
57 flask_wtf
58 flask-jwt-extended
59 jsonschema
60 marshmallow
61 marshmallow-enum
62 marshmallow-sqlalchemy
63 python-dateutil
64 prison
65 pyjwt
66 pyyaml
67 sqlalchemy-utils
68 ];
69
70 postPatch = ''
71 substituteInPlace setup.py \
72 --replace "apispec[yaml]>=3.3, <4" "apispec[yaml] >=3.3, <5" \
73 --replace "Flask-Login>=0.3, <0.5" "Flask-Login >=0.3, <0.6" \
74 --replace "Flask-Babel>=1, <2" "Flask-Babel >=1, <3" \
75 --replace "marshmallow-sqlalchemy>=0.22.0, <0.24.0" "marshmallow-sqlalchemy >=0.22.0, <0.25.0"
76 '';
77
78 # Majority of tests require network access or mongo
79 doCheck = false;
80
81 pythonImportsCheck = [ "flask_appbuilder" ];
82
83 meta = with lib; {
84 description = "Simple and rapid application development framework, built on top of Flask";
85 homepage = "https://github.com/dpgaspar/flask-appbuilder/";
86 license = licenses.bsd3;
87 maintainers = with maintainers; [ costrouc ];
88 };
89}