1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 boltons,
12 orjson,
13 pyrsistent,
14 zope-interface,
15
16 # tests
17 addBinToPathHook,
18 dask,
19 distributed,
20 hypothesis,
21 pandas,
22 pytestCheckHook,
23 testtools,
24 twisted,
25 daemontools,
26}:
27
28buildPythonPackage rec {
29 pname = "eliot";
30 version = "1.17.5";
31 pyproject = true;
32
33 src = fetchFromGitHub {
34 owner = "itamarst";
35 repo = "eliot";
36 tag = version;
37 hash = "sha256-x6zonKL6Ys1fyUjyOgVgucAN64Dt6dCzdBrxRZa+VDQ=";
38 };
39
40 build-system = [ setuptools ];
41
42 dependencies = [
43 boltons
44 orjson
45 pyrsistent
46 zope-interface
47 ];
48
49 nativeCheckInputs = [
50 addBinToPathHook
51 dask
52 distributed
53 hypothesis
54 pandas
55 pytestCheckHook
56 testtools
57 twisted
58 ]
59 ++ lib.optionals stdenv.hostPlatform.isLinux [ daemontools ];
60
61 __darwinAllowLocalNetworking = true;
62
63 pythonImportsCheck = [ "eliot" ];
64
65 meta = {
66 description = "Logging library that tells you why it happened";
67 homepage = "https://eliot.readthedocs.io";
68 changelog = "https://github.com/itamarst/eliot/blob/${version}/docs/source/news.rst";
69 mainProgram = "eliot-prettyprint";
70 license = lib.licenses.asl20;
71 maintainers = with lib.maintainers; [ dpausp ];
72 };
73}