nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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.0.0";
31 format = "setuptools";
32
33 disabled = pythonOlder "3.7";
34
35 src = fetchPypi {
36 pname = "Flask-AppBuilder";
37 inherit version;
38 hash = "sha256-g+iHUL83PokXPGu7HJ8ffLocQr0uGpMqS5MbfIlZZ2E=";
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 sha256 = "1rsci0ynb7y6k53j164faggjr2g6l5v78w7953qbxcy8f55sb2fv";
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-Login>=0.3, <0.5" "Flask-Login >=0.3" \
82 --replace "Flask-WTF>=0.14.2, <0.15.0" "Flask-WTF" \
83 --replace "WTForms<3.0.0" "WTForms" \
84 --replace "marshmallow-sqlalchemy>=0.22.0, <0.27.0" "marshmallow-sqlalchemy" \
85 --replace "prison>=0.2.1, <1.0.0" "prison"
86 '';
87
88 # Majority of tests require network access or mongo
89 doCheck = false;
90
91 pythonImportsCheck = [
92 "flask_appbuilder"
93 ];
94
95 meta = with lib; {
96 description = "Application development framework, built on top of Flask";
97 homepage = "https://github.com/dpgaspar/flask-appbuilder/";
98 license = licenses.bsd3;
99 maintainers = with maintainers; [ costrouc ];
100 };
101}