1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pybind11,
6 setuptools,
7 pytestCheckHook,
8 tzdata,
9 python,
10 pkgs,
11}:
12
13buildPythonPackage rec {
14 pname = "pyorc";
15 version = "0.10.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "noirello";
20 repo = "pyorc";
21 tag = "v${version}";
22 hash = "sha256-2w3Qh6g+Yg+D10kTow9YR6B6FhQ+z2DvgDy5GtYxH4g=";
23 };
24
25 build-system = [
26 pybind11
27 setuptools
28 ];
29
30 env = {
31 PYORC_SKIP_ORC_BUILD = "true";
32 };
33
34 buildInputs = [
35 pkgs.lz4
36 pkgs.protobuf_31
37 pkgs.snappy
38 pkgs.zlib
39 pkgs.zstd
40 pkgs.apache-orc
41 ];
42
43 preCheck = ''
44 # provide timezone data, works only on linux
45 export TZDIR=${tzdata}/${python.sitePackages}/tzdata/zoneinfo
46
47 substituteInPlace "tests/compare/test_writer_cmp.py" \
48 --replace-fail "deps/bin/orc-contents" "orc-contents"
49
50 substituteInPlace "tests/compare/test_reader_cmp.py" \
51 --replace-fail "deps/bin/orc-metadata" "orc-metadata"
52
53 mkdir -p deps
54 ln -s "${pkgs.apache-orc.src}/examples" "deps/"
55 '';
56
57 pythonImportsCheck = [
58 "pyorc"
59 ];
60
61 nativeCheckInputs = [
62 pytestCheckHook
63 pkgs.apache-orc
64 ];
65
66 meta = {
67 changelog = "https://github.com/noirello/pyorc/blob/${version}/CHANGELOG.rst";
68 description = "Python module for Apache ORC file format";
69 homepage = "https://github.com/noirello/pyorc";
70 license = lib.licenses.asl20;
71 maintainers = with lib.maintainers; [ ];
72 };
73}