1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 packaging,
12
13 # optional-dependencies
14 eventlet,
15 gevent,
16 tornado,
17 setproctitle,
18
19 pytestCheckHook,
20 pytest-cov-stub,
21}:
22
23buildPythonPackage rec {
24 pname = "gunicorn";
25 version = "23.0.0";
26 pyproject = true;
27
28 disabled = pythonOlder "3.7";
29
30 src = fetchFromGitHub {
31 owner = "benoitc";
32 repo = "gunicorn";
33 tag = version;
34 hash = "sha256-Dq/mrQwo3II6DBvYfD1FHsKHaIlyHlJCZ+ZyrM4Efe0=";
35 };
36
37 build-system = [ setuptools ];
38
39 dependencies = [ packaging ];
40
41 optional-dependencies = {
42 gevent = [ gevent ];
43 eventlet = [ eventlet ];
44 tornado = [ tornado ];
45 gthread = [ ];
46 setproctitle = [ setproctitle ];
47 };
48
49 pythonImportsCheck = [ "gunicorn" ];
50
51 nativeCheckInputs = [
52 pytestCheckHook
53 pytest-cov-stub
54 ]
55 ++ lib.flatten (lib.attrValues optional-dependencies);
56
57 meta = {
58 description = "WSGI HTTP Server for UNIX, fast clients and sleepy applications";
59 homepage = "https://github.com/benoitc/gunicorn";
60 changelog = "https://github.com/benoitc/gunicorn/releases/tag/${version}";
61 license = lib.licenses.mit;
62 maintainers = with lib.maintainers; [ getchoo ];
63 mainProgram = "gunicorn";
64 };
65}