1{
2 lib,
3 buildPythonPackage,
4 elasticsearch,
5 fastavro,
6 fetchFromGitHub,
7 lz4,
8 msgpack,
9 pytest7CheckHook,
10 pythonOlder,
11 setuptools,
12 setuptools-scm,
13 zstandard,
14}:
15
16buildPythonPackage rec {
17 pname = "flow-record";
18 version = "3.15";
19 pyproject = true;
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "fox-it";
25 repo = "flow.record";
26 rev = "refs/tags/${version}";
27 hash = "sha256-j5N66p7feB9Ae+Fu5RhVzh8XCHiq55jJMg0Fe+C6Jvg=";
28 };
29
30 build-system = [
31 setuptools
32 setuptools-scm
33 ];
34
35 dependencies = [ msgpack ];
36
37 passthru.optional-dependencies = {
38 compression = [
39 lz4
40 zstandard
41 ];
42 elastic = [ elasticsearch ];
43 avro = [ fastavro ] ++ fastavro.optional-dependencies.snappy;
44 };
45
46 nativeCheckInputs = [
47 pytest7CheckHook
48 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
49
50 pythonImportsCheck = [ "flow.record" ];
51
52 disabledTestPaths = [
53 # Test requires rdump
54 "tests/test_rdump.py"
55 ];
56
57 disabledTests = [ "test_rdump_fieldtype_path_json" ];
58
59 meta = with lib; {
60 description = "Library for defining and creating structured data";
61 homepage = "https://github.com/fox-it/flow.record";
62 changelog = "https://github.com/fox-it/flow.record/releases/tag/${version}";
63 license = licenses.agpl3Only;
64 maintainers = with maintainers; [ fab ];
65 };
66}