1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 setuptools,
7
8 # optional dependencies
9 azure-storage-blob,
10 boto3,
11 dulwich,
12 google-cloud-storage,
13 pymongo,
14 redis,
15
16 # testing
17 mock,
18 pytestCheckHook,
19 six,
20}:
21
22buildPythonPackage rec {
23 pname = "simplekv";
24 version = "0.14.1";
25 pyproject = true;
26
27 disabled = pythonOlder "3.7";
28
29 src = fetchFromGitHub {
30 owner = "mbr";
31 repo = "simplekv";
32 tag = version;
33 hash = "sha256-seUGDj2q84+AjDFM1pxMLlHbe9uBgEhmqA96UHjnCmo=";
34 };
35
36 build-system = [ setuptools ];
37
38 nativeCheckInputs = [
39 mock
40 pytestCheckHook
41 six
42 ]
43 ++ optional-dependencies.git;
44
45 pythonImportsCheck = [ "simplekv" ];
46
47 disabledTests = [
48 # Issue with fixture
49 "test_concurrent_mkdir"
50 ];
51
52 optional-dependencies = {
53 amazon = [ boto3 ];
54 azure = [ azure-storage-blob ];
55 google = [ google-cloud-storage ];
56 redis = [ redis ];
57 mongodb = [ pymongo ];
58 git = [ dulwich ];
59 /*
60 Additional potential dependencies not exposed here:
61 sqlalchemy: Our version is too new for simplekv
62 appengine-python-standard: Not packaged in nixpkgs
63 */
64 };
65
66 meta = with lib; {
67 description = "Simple key-value store for binary data";
68 homepage = "https://github.com/mbr/simplekv";
69 changelog = "https://github.com/mbr/simplekv/releases/tag/${version}";
70 license = licenses.mit;
71 maintainers = with maintainers; [
72 fab
73 bbenne10
74 ];
75 };
76}