1{ lib
2, buildPythonPackage
3, email-validator
4, fetchFromGitHub
5, flask
6, flask-wtf
7, markupsafe
8, mongoengine
9, pythonOlder
10, setuptools
11, setuptools-scm
12, typing-extensions
13, wtforms
14}:
15
16buildPythonPackage rec {
17 pname = "flask-mongoengine";
18 version = "1.0.0";
19 format = "pyproject";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "MongoEngine";
25 repo = pname;
26 rev = "refs/tags/v${version}";
27 hash = "sha256-YqEtW02VvEeUsLIHLz6+V6juMtWPEIk2tLoKTUdY6YE=";
28 };
29
30 nativeBuildInputs = [
31 setuptools
32 setuptools-scm
33 ];
34
35 propagatedBuildInputs = [
36 email-validator
37 flask
38 flask-wtf
39 mongoengine
40 ] ++ lib.optionals (pythonOlder "3.8") [
41 typing-extensions
42 ];
43
44 passthru.optional-dependencies = {
45 wtf = [
46 flask-wtf
47 wtforms
48 ] ++ wtforms.optional-dependencies.email;
49 # toolbar = [
50 # flask-debugtoolbar
51 # ];
52 legacy = [
53 markupsafe
54 ];
55 };
56
57 # Tests require working mongodb connection
58 doCheck = false;
59
60 pythonImportsCheck = [
61 "flask_mongoengine"
62 ];
63
64 meta = with lib; {
65 description = "Flask extension that provides integration with MongoEngine and WTF model forms";
66 homepage = "https://github.com/mongoengine/flask-mongoengine";
67 changelog = "https://github.com/MongoEngine/flask-mongoengine/releases/tag/v${version}";
68 license = licenses.bsd3;
69 maintainers = with maintainers; [ costrouc ];
70 };
71}