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