83 lines
1.7 KiB
Nix
83 lines
1.7 KiB
Nix
{ lib
|
|
, fetchFromGitHub
|
|
, python3Packages
|
|
}:
|
|
|
|
with python3Packages;
|
|
|
|
buildPythonApplication rec {
|
|
pname = "parquet-tools";
|
|
version = "0.2.16";
|
|
|
|
format = "pyproject";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "ktrueda";
|
|
repo = "parquet-tools";
|
|
rev = "refs/tags/${version}";
|
|
hash = "sha256-mV66R5ejfzH1IasmoyAWAH5vzrnLVVhOqKBMfWKIVY0=";
|
|
};
|
|
|
|
patches = [
|
|
# support Moto 5.x
|
|
# https://github.com/ktrueda/parquet-tools/pull/55
|
|
./moto5.patch
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace tests/test_inspect.py \
|
|
--replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version ${pyarrow.version}" \
|
|
--replace "serialized_size: 2222" "serialized_size: 2221" \
|
|
--replace "format_version: 1.0" "format_version: 2.6"
|
|
'';
|
|
|
|
pythonRelaxDeps = [
|
|
"halo"
|
|
"tabulate"
|
|
"thrift"
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
poetry-core
|
|
pythonRelaxDepsHook
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
boto3
|
|
colorama
|
|
halo
|
|
pandas
|
|
pyarrow
|
|
tabulate
|
|
thrift
|
|
];
|
|
|
|
# TestGetMetaData.test_inspect shells out to `parquet-tools` CLI entrypoint
|
|
preCheck = ''
|
|
export PATH=$out/bin:$PATH
|
|
'';
|
|
|
|
nativeCheckInputs = [
|
|
moto
|
|
pytest-mock
|
|
pytestCheckHook
|
|
];
|
|
|
|
disabledTests = [
|
|
# test file is 2 bytes bigger than expected
|
|
"test_excute_simple"
|
|
];
|
|
|
|
pythonImportsCheck = [
|
|
"parquet_tools"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "A CLI tool for parquet files";
|
|
homepage = "https://github.com/ktrueda/parquet-tools";
|
|
changelog = "https://github.com/ktrueda/parquet-tools/releases/tag/${version}";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ cpcloud ];
|
|
mainProgram = "parquet-tools";
|
|
};
|
|
}
|