1{ lib
2, brotli
3, buildPythonPackage
4, cython
5, execnet
6, fetchFromGitHub
7, jinja2
8, pytestCheckHook
9, pythonOlder
10, pyzmq
11, redis
12, setuptools
13, sqlalchemy
14}:
15
16buildPythonPackage rec {
17 pname = "logbook";
18 version = "1.6.0";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "getlogbook";
25 repo = "logbook";
26 rev = "refs/tags/${version}";
27 hash = "sha256-2K6fM6MFrh3l0smhSz8RFd79AIOXQZJQbNLTJM4WZUo=";
28 };
29
30 nativeBuildInputs = [
31 cython
32 setuptools
33 ];
34
35 passthru.optional-dependencies = {
36 execnet = [
37 execnet
38 ];
39 sqlalchemy = [
40 sqlalchemy
41 ];
42 redis = [
43 redis
44 ];
45 zmq = [
46 pyzmq
47 ];
48 compression = [
49 brotli
50 ];
51 jinja = [
52 jinja2
53 ];
54 all = [
55 brotli
56 execnet
57 jinja2
58 pyzmq
59 redis
60 sqlalchemy
61 ];
62 };
63
64 nativeCheckInputs = [
65 pytestCheckHook
66 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
67
68 # Some of the tests use localhost networking.
69 __darwinAllowLocalNetworking = true;
70
71 pythonImportsCheck = [
72 "logbook"
73 ];
74
75 disabledTests = [
76 # Test require Redis instance
77 "test_redis_handler"
78 ];
79
80 meta = with lib; {
81 description = "A logging replacement for Python";
82 homepage = "https://logbook.readthedocs.io/";
83 changelog = "https://github.com/getlogbook/logbook/blob/${version}/CHANGES";
84 license = licenses.bsd3;
85 maintainers = with maintainers; [ ];
86 };
87}