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 ] ++ lib.optionals stdenv.hostPlatform.isLinux [ daemontools ];
59
60 __darwinAllowLocalNetworking = true;
61
62 pythonImportsCheck = [ "eliot" ];
63
64 meta = {
65 description = "Logging library that tells you why it happened";
66 homepage = "https://eliot.readthedocs.io";
67 changelog = "https://github.com/itamarst/eliot/blob/${version}/docs/source/news.rst";
68 mainProgram = "eliot-prettyprint";
69 license = lib.licenses.asl20;
70 maintainers = with lib.maintainers; [ dpausp ];
71 };
72}