at 24.11-pre 2.1 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 pythonOlder, 5 fetchFromGitHub, 6 substituteAll, 7 ruff, 8 click, 9 click-default-group, 10 docformatter, 11 jinja2, 12 toposort, 13 typing-extensions, 14 lxml, 15 requests, 16 pytestCheckHook, 17 setuptools, 18}: 19 20buildPythonPackage rec { 21 pname = "xsdata"; 22 version = "24.2.1"; 23 pyproject = true; 24 25 disabled = pythonOlder "3.8"; 26 27 src = fetchFromGitHub { 28 owner = "tefra"; 29 repo = "xsdata"; 30 rev = "refs/tags/v${version}"; 31 hash = "sha256-o3G0isXShwNHaOiA4TNml0IhStB3X4jB9CgrVKViBlY="; 32 }; 33 34 patches = [ 35 (substituteAll { 36 src = ./paths.patch; 37 ruff = lib.getExe ruff; 38 }) 39 ]; 40 41 postPatch = '' 42 substituteInPlace pyproject.toml \ 43 --replace "--benchmark-skip" "" 44 ''; 45 46 nativeBuildInputs = [ setuptools ]; 47 48 propagatedBuildInputs = [ typing-extensions ]; 49 50 passthru.optional-dependencies = { 51 cli = [ 52 click 53 click-default-group 54 docformatter 55 jinja2 56 toposort 57 ]; 58 lxml = [ lxml ]; 59 soap = [ requests ]; 60 }; 61 62 nativeCheckInputs = 63 [ pytestCheckHook ] 64 ++ passthru.optional-dependencies.cli 65 ++ passthru.optional-dependencies.lxml 66 ++ passthru.optional-dependencies.soap; 67 68 disabledTestPaths = [ "tests/integration/benchmarks" ]; 69 70 pythonImportsCheck = [ 71 "xsdata.formats.dataclass.context" 72 "xsdata.formats.dataclass.models.elements" 73 "xsdata.formats.dataclass.models.generics" 74 "xsdata.formats.dataclass.parsers" 75 "xsdata.formats.dataclass.parsers.handlers" 76 "xsdata.formats.dataclass.parsers.nodes" 77 "xsdata.formats.dataclass.serializers" 78 "xsdata.formats.dataclass.serializers.config" 79 "xsdata.formats.dataclass.serializers.mixins" 80 "xsdata.formats.dataclass.serializers.writers" 81 "xsdata.models.config" 82 "xsdata.utils.text" 83 ]; 84 85 meta = { 86 description = "Naive XML & JSON bindings for Python"; 87 mainProgram = "xsdata"; 88 homepage = "https://github.com/tefra/xsdata"; 89 changelog = "https://github.com/tefra/xsdata/blob/${src.rev}/CHANGES.md"; 90 license = lib.licenses.mit; 91 maintainers = with lib.maintainers; [ dotlambda ]; 92 }; 93}