1{ lib
2, buildPythonPackage
3, fetchPypi
4, fetchpatch
5, apispec
6, colorama
7, click
8, email-validator
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, pythonOlder
22, prison
23, pyjwt
24, pyyaml
25, sqlalchemy-utils
26}:
27
28buildPythonPackage rec {
29 pname = "flask-appbuilder";
30 version = "4.1.3";
31 format = "setuptools";
32
33 disabled = pythonOlder "3.7";
34
35 src = fetchPypi {
36 pname = "Flask-AppBuilder";
37 inherit version;
38 hash = "sha256-8NaTr0RcnsVik/AB4g8QL+FkcRlgkkASFe8fXIvFt/A=";
39 };
40
41 patches = [
42 (fetchpatch {
43 # https://github.com/dpgaspar/Flask-AppBuilder/pull/1734
44 name = "flask-appbuilder-wtf3.patch";
45 url = "https://github.com/dpgaspar/Flask-AppBuilder/commit/bccb3d719cd3ceb872fe74a9ab304d74664fbf43.patch";
46 hash = "sha256-24mlS3HIs77wKOlwdHah5oks31OOmCBHmcafZT2ITOc=";
47 excludes = [
48 "requirements.txt"
49 "setup.py"
50 "examples/employees/app/views.py"
51 ];
52 })
53 ];
54
55 propagatedBuildInputs = [
56 apispec
57 colorama
58 click
59 email-validator
60 flask
61 flask-babel
62 flask-login
63 flask-openid
64 flask-sqlalchemy
65 flask-wtf
66 flask-jwt-extended
67 jsonschema
68 marshmallow
69 marshmallow-enum
70 marshmallow-sqlalchemy
71 python-dateutil
72 prison
73 pyjwt
74 pyyaml
75 sqlalchemy-utils
76 ];
77
78 postPatch = ''
79 substituteInPlace setup.py \
80 --replace "apispec[yaml]>=3.3, <4" "apispec[yaml] >=3.3" \
81 --replace "Flask-WTF>=0.14.2, <1.0.0" "Flask-WTF" \
82 --replace "WTForms<3.0.0" "WTForms" \
83 --replace "marshmallow-sqlalchemy>=0.22.0, <0.27.0" "marshmallow-sqlalchemy" \
84 --replace "prison>=0.2.1, <1.0.0" "prison"
85 '';
86
87 # Majority of tests require network access or mongo
88 doCheck = false;
89
90 pythonImportsCheck = [
91 "flask_appbuilder"
92 ];
93
94 meta = with lib; {
95 description = "Application development framework, built on top of Flask";
96 homepage = "https://github.com/dpgaspar/flask-appbuilder/";
97 license = licenses.bsd3;
98 maintainers = with maintainers; [ costrouc ];
99 };
100}