at master 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.7"; 22 pyproject = true; 23 24 src = fetchFromGitHub { 25 owner = "tefra"; 26 repo = "xsdata"; 27 tag = "v${version}"; 28 hash = "sha256-npwJlyUYjoYzvwaZZK4PIqhJmTeYGDDfc4T4/ODcx4c="; 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 pytestCheckHook 60 ] 61 ++ optional-dependencies.cli 62 ++ optional-dependencies.lxml 63 ++ optional-dependencies.soap; 64 65 disabledTestPaths = [ "tests/integration/benchmarks" ]; 66 67 pythonImportsCheck = [ 68 "xsdata.formats.dataclass.context" 69 "xsdata.formats.dataclass.models.elements" 70 "xsdata.formats.dataclass.models.generics" 71 "xsdata.formats.dataclass.parsers" 72 "xsdata.formats.dataclass.parsers.handlers" 73 "xsdata.formats.dataclass.parsers.nodes" 74 "xsdata.formats.dataclass.serializers" 75 "xsdata.formats.dataclass.serializers.config" 76 "xsdata.formats.dataclass.serializers.mixins" 77 "xsdata.formats.dataclass.serializers.writers" 78 "xsdata.models.config" 79 "xsdata.utils.text" 80 ]; 81 82 meta = { 83 description = "Naive XML & JSON bindings for Python"; 84 mainProgram = "xsdata"; 85 homepage = "https://github.com/tefra/xsdata"; 86 changelog = "https://github.com/tefra/xsdata/blob/${src.tag}/CHANGES.md"; 87 license = lib.licenses.mit; 88 maintainers = with lib.maintainers; [ dotlambda ]; 89 }; 90}