1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6
7 # build-system
8 flit-core,
9
10 # propagates
11 aiofiles,
12 blinker,
13 click,
14 flask,
15 hypercorn,
16 importlib-metadata,
17 itsdangerous,
18 jinja2,
19 markupsafe,
20 pydata-sphinx-theme,
21 python-dotenv,
22 typing-extensions,
23 werkzeug,
24
25 # tests
26 hypothesis,
27 mock,
28 py,
29 pytest-asyncio,
30 pytest-cov-stub,
31 pytestCheckHook,
32}:
33
34buildPythonPackage rec {
35 pname = "quart";
36 version = "0.20.0";
37 pyproject = true;
38
39 src = fetchFromGitHub {
40 owner = "pallets";
41 repo = "quart";
42 tag = version;
43 hash = "sha256-NApev3nRBS4QDMGq8++rSmK5YgeljkaVAsdezsTbZr4=";
44 };
45
46 build-system = [ flit-core ];
47
48 dependencies = [
49 aiofiles
50 blinker
51 click
52 flask
53 hypercorn
54 itsdangerous
55 jinja2
56 markupsafe
57 pydata-sphinx-theme
58 python-dotenv
59 werkzeug
60 ]
61 ++ lib.optionals (pythonOlder "3.10") [
62 importlib-metadata
63 typing-extensions
64 ];
65
66 pythonImportsCheck = [ "quart" ];
67
68 nativeCheckInputs = [
69 hypothesis
70 mock
71 py
72 pytest-asyncio
73 pytest-cov-stub
74 pytestCheckHook
75 ];
76
77 meta = with lib; {
78 description = "Async Python micro framework for building web applications";
79 mainProgram = "quart";
80 homepage = "https://github.com/pallets/quart/";
81 changelog = "https://github.com/pallets/quart/blob/${src.tag}/CHANGES.rst";
82 license = licenses.mit;
83 maintainers = with maintainers; [ hexa ];
84 };
85}