nixpkgs/pkgs/development/python-modules/fpdf2/default.nix

73 lines
1.5 KiB
Nix

{ lib
, buildPythonPackage
, fetchFromGitHub
, setuptools
, defusedxml
, pillow
, fonttools
, pytestCheckHook
, qrcode
, camelot
, uharfbuzz
, lxml
}:
buildPythonPackage rec {
pname = "fpdf2";
version = "2.7.8";
pyproject = true;
src = fetchFromGitHub {
owner = "py-pdf";
repo = "fpdf2";
rev = "refs/tags/${version}";
hash = "sha256-6aedXr8Yhes1aYIslBvw2HzRc4BwYDIiGJvEdp1tFSc=";
};
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "--cov=fpdf --cov-report=xml" ""
'';
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [
defusedxml
pillow
fonttools
];
nativeCheckInputs = [
pytestCheckHook
qrcode
camelot
uharfbuzz
lxml
];
disabledTestPaths = [
"test/table/test_table_extraction.py" # tabula-py not packaged yet
"test/signing/test_sign.py" # endesive not packaged yet
];
disabledTests = [
"test_png_url" # tries to download file
"test_page_background" # tries to download file
"test_share_images_cache" # uses timing functions
"test_bidi_character" # tries to download file
"test_bidi_conformance" # tries to download file
"test_insert_jpg_jpxdecode" # JPEG2000 is broken
];
meta = {
homepage = "https://github.com/py-pdf/fpdf2";
description = "Simple PDF generation for Python";
changelog = "https://github.com/py-pdf/fpdf2/blob/${version}/CHANGELOG.md";
license = lib.licenses.lgpl3Only;
maintainers = with lib.maintainers; [ jfvillablanca ];
};
}