nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 beartype,
4 buildPythonPackage,
5 click,
6 fetchFromGitHub,
7 license-expression,
8 ply,
9 pytestCheckHook,
10 pyyaml,
11 rdflib,
12 semantic-version,
13 setuptools,
14 setuptools-scm,
15 uritools,
16 xmltodict,
17}:
18
19buildPythonPackage (finalAttrs: {
20 pname = "spdx-tools";
21 version = "0.8.4";
22 pyproject = true;
23
24 src = fetchFromGitHub {
25 owner = "spdx";
26 repo = "tools-python";
27 tag = "v${finalAttrs.version}";
28 hash = "sha256-loD+YXRCEYRynOKf7Da43SA7JQVYP1IzJe2f7ssJTtI=";
29 };
30
31 build-system = [
32 setuptools
33 setuptools-scm
34 ];
35
36 dependencies = [
37 beartype
38 click
39 license-expression
40 ply
41 pyyaml
42 rdflib
43 semantic-version
44 uritools
45 xmltodict
46 ];
47
48 nativeCheckInputs = [ pytestCheckHook ];
49
50 pythonImportsCheck = [ "spdx_tools.spdx" ];
51
52 disabledTestPaths = [
53 # Test depends on the currently not packaged pyshacl module
54 "tests/spdx3/validation/json_ld/test_shacl_validation.py"
55 ];
56
57 disabledTests = [
58 # Missing files
59 "test_spdx2_convert_to_spdx3"
60 "test_json_writer"
61 ];
62
63 meta = {
64 description = "SPDX parser and tools";
65 homepage = "https://github.com/spdx/tools-python";
66 changelog = "https://github.com/spdx/tools-python/blob/${finalAttrs.src.tag}/CHANGELOG.md";
67 license = lib.licenses.asl20;
68 maintainers = with lib.maintainers; [ fab ];
69 };
70})