diff --git a/pkgs/tools/misc/parquet-tools/default.nix b/pkgs/tools/misc/parquet-tools/default.nix new file mode 100644 index 000000000000..0ba909e1f602 --- /dev/null +++ b/pkgs/tools/misc/parquet-tools/default.nix @@ -0,0 +1,69 @@ +{ lib +, fetchFromGitHub +, fetchpatch +, python3Packages +}: + +with python3Packages; + +buildPythonApplication rec { + pname = "parquet-tools"; + version = "0.2.9"; + disabled = pythonOlder "3.8"; + + format = "pyproject"; + + src = fetchFromGitHub { + owner = "ktrueda"; + repo = "parquet-tools"; + rev = version; + sha256 = "0aw0x7lhagp4dwis09fsizr7zbhdpliav0ns5ll5qny7x4m6rkfy"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/ktrueda/parquet-tools/commit/1c70a07e1c9f17c8890d23aad3ded5dd6c706cb3.patch"; + sha256 = "08j1prdqj8ksw8gwiyj7ivshk82ahmywbzmywclw52nlnniig0sa"; + }) + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace 'thrift = "^0.13.0"' 'thrift = "*"' \ + --replace 'halo = "^0.0.29"' 'halo = "*"' + substituteInPlace tests/test_inspect.py \ + --replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version 6.0.0" \ + --replace "serialized_size: 2222" "serialized_size: 2221" + ''; + + nativeBuildInputs = [ poetry-core ]; + + propagatedBuildInputs = [ + boto3 + colorama + halo + pandas + pyarrow + tabulate + thrift + ]; + + checkInputs = [ + pytestCheckHook + moto + pytest-mock + ]; + + disabledTests = [ + # these tests try to read python code as parquet and fail + "test_local_wildcard" + "test_local_and_s3_wildcard_files" + ]; + + meta = with lib; { + description = "A CLI tool for parquet files"; + homepage = "https://github.com/ktrueda/parquet-tools"; + license = licenses.mit; + maintainers = with maintainers; [ cpcloud ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4ec0d104b9bc..eaf92ebfeffa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1841,6 +1841,8 @@ with pkgs; pacparser = callPackage ../tools/networking/pacparser { }; + parquet-tools = callPackage ../tools/misc/parquet-tools { }; + pass = callPackage ../tools/security/pass { }; passphrase2pgp = callPackage ../tools/security/passphrase2pgp { };