1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 gevent,
6 pytestCheckHook,
7 pytest-cov-stub,
8 dramatiq,
9 redis,
10 setuptools,
11}:
12
13buildPythonPackage rec {
14 pname = "dramatiq-abort";
15 version = "1.2.1";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "Flared";
20 repo = "dramatiq-abort";
21 tag = "v${version}";
22 hash = "sha256-i5vL9yjQQambG8m6RDByr7/j8+PhDdLsai3pDrH1A4Q=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 dramatiq
29 ];
30
31 optional-dependencies = {
32 all = lib.flatten (lib.attrValues (lib.filterAttrs (n: v: n != "all") optional-dependencies));
33 gevent = [ gevent ];
34 redis = [ redis ];
35 };
36
37 nativeCheckInputs = [
38 redis
39 pytestCheckHook
40 pytest-cov-stub
41 ];
42
43 pythonImportsCheck = [ "dramatiq_abort" ];
44
45 meta = {
46 changelog = "https://github.com/Flared/dramatiq-abort/releases/tag/v${version}";
47 description = "Dramatiq extension to abort message";
48 homepage = "https://github.com/Flared/dramatiq-abort";
49 license = lib.licenses.lgpl3Plus;
50 maintainers = with lib.maintainers; [ tebriel ];
51 };
52}