https://github.com/MatthiasValvekens/pyHanko/blob/0.17.0/docs/changelog.rst#0170 Drop the custom flags in favor of the standardised optional-dependencies. Always test with all optional-dependencies.
139 lines
2.7 KiB
Nix
139 lines
2.7 KiB
Nix
{ lib
|
|
, buildPythonPackage
|
|
, fetchFromGitHub
|
|
, pythonOlder
|
|
, asn1crypto
|
|
, click
|
|
, cryptography
|
|
, pyhanko-certvalidator
|
|
, pytz
|
|
, pyyaml
|
|
, qrcode
|
|
, requests
|
|
, tzlocal
|
|
, certomancer
|
|
, freezegun
|
|
, python-pae
|
|
, pytest-aiohttp
|
|
, requests-mock
|
|
, pytestCheckHook
|
|
|
|
# optionals
|
|
, defusedxml
|
|
, oscrypto
|
|
, fonttools
|
|
, uharfbuzz
|
|
, pillow
|
|
, python-barcode
|
|
, python-pkcs11
|
|
, aiohttp
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "pyhanko";
|
|
version = "0.17.0";
|
|
format = "setuptools";
|
|
|
|
disabled = pythonOlder "3.7";
|
|
|
|
# Tests are only available on GitHub
|
|
src = fetchFromGitHub {
|
|
owner = "MatthiasValvekens";
|
|
repo = "pyHanko";
|
|
rev = "refs/tags/${version}";
|
|
hash = "sha256-tvb2zdmIN6MkezmLNkyCcP8EfqxrbPg/FEqgW16Ka6Q=";
|
|
};
|
|
|
|
propagatedBuildInputs = [
|
|
asn1crypto
|
|
click
|
|
cryptography
|
|
pyhanko-certvalidator
|
|
pytz
|
|
pyyaml
|
|
qrcode
|
|
requests
|
|
tzlocal
|
|
];
|
|
|
|
passthru.optional-dependencies = {
|
|
extra_pubkey_algs = [
|
|
oscrypto
|
|
];
|
|
xmp = [
|
|
defusedxml
|
|
];
|
|
opentype = [
|
|
fonttools
|
|
uharfbuzz
|
|
];
|
|
image-support = [
|
|
pillow
|
|
python-barcode
|
|
];
|
|
pkcs11 = [
|
|
python-pkcs11
|
|
];
|
|
async_http = [
|
|
aiohttp
|
|
];
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace setup.py \
|
|
--replace ", 'pytest-runner'" "" \
|
|
'';
|
|
|
|
nativeCheckInputs = [
|
|
aiohttp
|
|
certomancer
|
|
freezegun
|
|
python-pae
|
|
pytest-aiohttp
|
|
requests-mock
|
|
pytestCheckHook
|
|
] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
|
|
|
|
disabledTestPaths = [
|
|
# ModuleNotFoundError: No module named 'csc_dummy'
|
|
"pyhanko_tests/test_csc.py"
|
|
];
|
|
|
|
disabledTests = [
|
|
# Most of the test require working with local certificates,
|
|
# contacting OSCP or performing requests
|
|
"test_generic_data_sign_legacy"
|
|
"test_generic_data_sign"
|
|
"test_cms_v3_sign"
|
|
"test_detached_cms_with_self_reported_timestamp"
|
|
"test_detached_cms_with_tst"
|
|
"test_detached_cms_with_content_tst"
|
|
"test_detached_cms_with_wrong_content_tst"
|
|
"test_detached_with_malformed_content_tst"
|
|
"test_noop_attribute_prov"
|
|
"test_detached_cades_cms_with_tst"
|
|
"test_read_qr_config"
|
|
"test_no_changes_policy"
|
|
"test_bogus_metadata_manipulation"
|
|
"test_tamper_sig_obj"
|
|
"test_signed_file_diff_proxied_objs"
|
|
"test_pades_revinfo_live"
|
|
"test_diff_fallback_ok"
|
|
"test_no_diff_summary"
|
|
"test_ocsp_embed"
|
|
"test_ts_fetch_aiohttp"
|
|
"test_ts_fetch_requests"
|
|
];
|
|
|
|
pythonImportsCheck = [
|
|
"pyhanko"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "Sign and stamp PDF files";
|
|
homepage = "https://github.com/MatthiasValvekens/pyHanko";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ wolfangaukang ];
|
|
};
|
|
}
|