2025-07-24 13:55:40 +02:00

115 lines
2.1 KiB
Nix

{
lib,
buildPythonPackage,
dataproperty,
dominate,
elasticsearch,
fetchFromGitHub,
loguru,
mbstrdecoder,
pandas,
pathvalidate,
pytestCheckHook,
pythonOlder,
pyyaml,
setuptools-scm,
simplejson,
tabledata,
tcolorpy,
toml,
typepy,
xlsxwriter,
xlwt,
}:
buildPythonPackage rec {
pname = "pytablewriter";
version = "1.2.1";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "thombashi";
repo = "pytablewriter";
tag = "v${version}";
hash = "sha256-YuuSMKTSG3oybvA6TDWNnGg4EiDAw2tRlM0S9mBQlkc=";
};
build-system = [ setuptools-scm ];
dependencies = [
dataproperty
mbstrdecoder
pathvalidate
tabledata
tcolorpy
typepy
];
optional-dependencies = {
all = [
dominate
elasticsearch
loguru
pandas
# pytablereader
pyyaml
simplejson
toml
xlsxwriter
xlwt
];
es = [ elasticsearch ];
es8 = [ elasticsearch ];
excel = [
xlwt
xlsxwriter
];
html = [ dominate ];
logging = [ loguru ];
# from = [
# pytablereader
# ];
pandas = [ pandas ];
# sqlite = [
# simplesqlite
# ];
# theme = [
# pytablewriter-altrow-theme
# ];
toml = [ toml ];
yaml = [ pyyaml ];
};
nativeCheckInputs = [
pytestCheckHook
]
++ lib.flatten (builtins.attrValues optional-dependencies);
pythonImportsCheck = [ "pathvalidate" ];
disabledTests = [
# Circular dependency
"test_normal_from_file"
"test_normal_from_text"
"test_normal_clear_theme"
# Test compares CLI output
"test_normal"
];
disabledTestPaths = [
"test/writer/binary/test_excel_writer.py"
"test/writer/binary/test_sqlite_writer.py"
"test/writer/test_elasticsearch_writer.py"
];
meta = {
description = "Library to write a table in various formats";
homepage = "https://github.com/thombashi/pytablewriter";
changelog = "https://github.com/thombashi/pytablewriter/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ genericnerdyusername ];
};
}