1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchPypi
5, click
6, click-default-group
7, docformatter
8, jinja2
9, toposort
10, lxml
11, requests
12, pytestCheckHook
13}:
14
15buildPythonPackage rec {
16 pname = "xsdata";
17 version = "22.11";
18
19 disabled = pythonOlder "3.7";
20
21 format = "setuptools";
22
23 src = fetchPypi {
24 inherit pname version;
25 hash = "sha256-3A2vyK6UdelWSzcN7pzPz6xKnU3X+rum7dKzl6OfWoc=";
26 };
27
28 postPatch = ''
29 substituteInPlace setup.cfg \
30 --replace "--benchmark-skip" ""
31 '';
32
33 passthru.optional-dependencies = {
34 cli = [
35 click
36 click-default-group
37 docformatter
38 jinja2
39 toposort
40 ];
41 lxml = [
42 lxml
43 ];
44 soap = [
45 requests
46 ];
47 };
48
49 checkInputs = [
50 pytestCheckHook
51 ] ++ passthru.optional-dependencies.cli
52 ++ passthru.optional-dependencies.lxml
53 ++ passthru.optional-dependencies.soap;
54
55 disabledTestPaths = [
56 "tests/integration/benchmarks"
57 ];
58
59 pythonImportsCheck = [
60 "xsdata.formats.dataclass.context"
61 "xsdata.formats.dataclass.models.elements"
62 "xsdata.formats.dataclass.models.generics"
63 "xsdata.formats.dataclass.parsers"
64 "xsdata.formats.dataclass.parsers.handlers"
65 "xsdata.formats.dataclass.parsers.nodes"
66 "xsdata.formats.dataclass.serializers"
67 "xsdata.formats.dataclass.serializers.config"
68 "xsdata.formats.dataclass.serializers.mixins"
69 "xsdata.formats.dataclass.serializers.writers"
70 "xsdata.models.config"
71 "xsdata.utils.text"
72 ];
73
74 meta = {
75 description = "Python XML Binding";
76 homepage = "https://github.com/tefra/xsdata";
77 changelog = "https://github.com/tefra/xsdata/blob/v${version}/CHANGES.rst";
78 license = lib.licenses.mit;
79 maintainers = with lib.maintainers; [ dotlambda ];
80 };
81}