1{ attrs
2, buildPythonPackage
3, defusedxml
4, fetchPypi
5, hypothesis
6, isPy3k
7, lxml
8, pillow
9, pybind11
10, pytest
11, pytest-helpers-namespace
12, pytest-timeout
13, pytest_xdist
14, pytestrunner
15, python-xmp-toolkit
16, python3
17, qpdf
18, setuptools-scm-git-archive
19, setuptools_scm
20, stdenv
21}:
22
23buildPythonPackage rec {
24 pname = "pikepdf";
25 version = "1.18.0";
26 disabled = ! isPy3k;
27
28 src = fetchPypi {
29 inherit pname version;
30 sha256 = "4d0840a5c16b535f9b6e56fb4421a43f88760e6cabcf7fd44bdd0436107b61dc";
31 };
32
33 buildInputs = [
34 pybind11
35 qpdf
36 ];
37
38 nativeBuildInputs = [
39 setuptools-scm-git-archive
40 setuptools_scm
41 ];
42
43 checkInputs = [
44 attrs
45 hypothesis
46 pillow
47 pytest
48 pytest-helpers-namespace
49 pytest-timeout
50 pytest_xdist
51 pytestrunner
52 python-xmp-toolkit
53 ];
54
55 propagatedBuildInputs = [ defusedxml lxml ];
56
57 postPatch = ''
58 sed -i \
59 -e 's/^pytest .*/pytest/g' \
60 -e 's/^attrs .*/attrs/g' \
61 -e 's/^hypothesis .*/hypothesis/g' \
62 requirements/test.txt
63 '';
64
65 preBuild = ''
66 HOME=$TMPDIR
67 '';
68
69 meta = with stdenv.lib; {
70 homepage = "https://github.com/pikepdf/pikepdf";
71 description = "Read and write PDFs with Python, powered by qpdf";
72 license = licenses.mpl20;
73 maintainers = [ maintainers.kiwi ];
74 };
75}