1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hypothesis,
6 jsonpath-ng,
7 lupa,
8 poetry-core,
9 pybloom-live,
10 pyprobables,
11 pytest-asyncio,
12 pytest-mock,
13 pytestCheckHook,
14 pythonOlder,
15 redis,
16 sortedcontainers,
17}:
18
19buildPythonPackage rec {
20 pname = "fakeredis";
21 version = "2.23.3";
22 pyproject = true;
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "dsoftwareinc";
28 repo = "fakeredis-py";
29 rev = "refs/tags/v${version}";
30 hash = "sha256-U+jLxI2Ly+LvC/0eGXdaAa6iqDFfu5n8X0UrTWFRhhE=";
31 };
32
33 build-system = [ poetry-core ];
34
35 dependencies = [
36 redis
37 sortedcontainers
38 ];
39
40 nativeCheckInputs = [
41 hypothesis
42 pytest-asyncio
43 pytest-mock
44 pytestCheckHook
45 ];
46
47 passthru.optional-dependencies = {
48 lua = [ lupa ];
49 json = [ jsonpath-ng ];
50 bf = [ pyprobables ];
51 cf = [ pyprobables ];
52 probabilistic = [ pyprobables ];
53 };
54
55 pythonImportsCheck = [ "fakeredis" ];
56
57 disabledTests = [
58 # AssertionError
59 "test_command"
60 ];
61
62 meta = with lib; {
63 description = "Fake implementation of Redis API";
64 homepage = "https://github.com/dsoftwareinc/fakeredis-py";
65 changelog = "https://github.com/cunla/fakeredis-py/releases/tag/v${version}";
66 license = with licenses; [ bsd3 ];
67 maintainers = with maintainers; [ fab ];
68 };
69}