1{
2 lib,
3 buildPythonPackage,
4 inkscape,
5 fetchFromGitLab,
6 poetry-core,
7 cssselect,
8 lxml,
9 numpy,
10 packaging,
11 pillow,
12 pygobject3,
13 pyparsing,
14 pyserial,
15 scour,
16 gobject-introspection,
17 pytestCheckHook,
18 gtk3,
19}:
20
21buildPythonPackage {
22 pname = "inkex";
23 inherit (inkscape) version;
24
25 format = "pyproject";
26
27 inherit (inkscape) src;
28
29 nativeBuildInputs = [ poetry-core ];
30
31 propagatedBuildInputs = [
32 cssselect
33 lxml
34 numpy
35 pygobject3
36 pyserial
37 ];
38
39 pythonImportsCheck = [ "inkex" ];
40
41 nativeCheckInputs = [
42 gobject-introspection
43 pytestCheckHook
44 ];
45
46 checkInputs = [
47 gtk3
48 packaging
49 pillow
50 pyparsing
51 scour
52 ];
53
54 disabledTests = [
55 "test_extract_multiple"
56 "test_lookup_and"
57 ];
58
59 disabledTestPaths = [
60 # Fatal Python error: Segmentation fault
61 "tests/test_inkex_gui.py"
62 "tests/test_inkex_gui_listview.py"
63 "tests/test_inkex_gui_window.py"
64 # Failed to find pixmap 'image-missing' in /build/source/tests/data/
65 "tests/test_inkex_gui_pixmaps.py"
66 ];
67
68 postPatch = ''
69 cd share/extensions
70
71 substituteInPlace pyproject.toml \
72 --replace-fail 'scour = "^0.37"' 'scour = ">=0.37"' \
73 --replace-fail 'lxml = "^4.5.0"' 'lxml = "^4.5.0 || ^5.0.0"'
74 '';
75
76 meta = {
77 description = "Library for manipulating SVG documents which is the basis for Inkscape extensions";
78 homepage = "https://gitlab.com/inkscape/extensions";
79 license = lib.licenses.gpl2Plus;
80 maintainers = with lib.maintainers; [ dotlambda ];
81 };
82}