1{
2 lib,
3 betamax,
4 blinker,
5 buildPythonPackage,
6 coverage,
7 fetchFromGitHub,
8 flask,
9 flask-caching,
10 flask-login,
11 flask-sqlalchemy,
12 flit,
13 freezegun,
14 oauthlib,
15 pallets-sphinx-themes,
16 pillow,
17 pytest,
18 pytest-mock,
19 pytestCheckHook,
20 requests,
21 requests-oauthlib,
22 responses,
23 sphinx,
24 sphinxcontrib-seqdiag,
25 sphinxcontrib-spelling,
26 sqlalchemy,
27 urlobject,
28 werkzeug,
29}:
30
31buildPythonPackage rec {
32 pname = "flask-dance";
33 version = "7.1.0";
34 pyproject = true;
35
36 src = fetchFromGitHub {
37 owner = "singingwolfboy";
38 repo = "flask-dance";
39 tag = "v${version}";
40 hash = "sha256-rKHC0G5S7l52QSrbbweMii68AZuBAgf6tYsJdPKIeUk=";
41 };
42
43 build-system = [ flit ];
44
45 dependencies = [
46 flask
47 oauthlib
48 requests
49 requests-oauthlib
50 urlobject
51 werkzeug
52 ];
53
54 optional-dependencies = {
55 docs = [
56 betamax
57 pallets-sphinx-themes
58 pillow
59 sphinx
60 sphinxcontrib-seqdiag
61 sphinxcontrib-spelling
62 sqlalchemy
63 ];
64
65 signals = [ blinker ];
66
67 sqla = [ sqlalchemy ];
68
69 test = [
70 betamax
71 coverage
72 flask-caching
73 flask-login
74 flask-sqlalchemy
75 freezegun
76 oauthlib
77 pytest
78 pytest-mock
79 responses
80 sqlalchemy
81 ];
82 };
83
84 nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
85
86 pythonImportsCheck = [ "flask_dance" ];
87
88 meta = {
89 description = "Doing the OAuth dance with style using Flask, requests, and oauthlib";
90 homepage = "https://github.com/singingwolfboy/flask-dance";
91 changelog = "https://github.com/singingwolfboy/flask-dance/releases/tag/${src.tag}";
92 license = lib.licenses.mit;
93 maintainers = with lib.maintainers; [ getchoo ];
94 };
95}