diff --git a/pkgs/development/python-modules/spdx-tools/default.nix b/pkgs/development/python-modules/spdx-tools/default.nix new file mode 100644 index 000000000000..53d6d51d2d28 --- /dev/null +++ b/pkgs/development/python-modules/spdx-tools/default.nix @@ -0,0 +1,54 @@ +{ lib +, buildPythonPackage +, fetchPypi +, fetchpatch +, six +, pyyaml +, rdflib +, ply +, xmltodict +, pytestCheckHook +, pythonAtLeast +}: +buildPythonPackage rec { + pname = "spdx-tools"; + version = "0.6.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "9a1aaae051771e865705dd2fd374c3f73d0ad595c1056548466997551cbd7a81"; + }; + + patches = lib.optionals (pythonAtLeast "3.9") [ + # https://github.com/spdx/tools-python/pull/159 + # fixes tests on Python 3.9 + (fetchpatch { + name = "drop-encoding-argument.patch"; + url = "https://github.com/spdx/tools-python/commit/6c8b9a852f8a787122c0e2492126ee8aa52acff0.patch"; + sha256 = "RhvLhexsQRjqYqJg10SAM53RsOW+R93G+mns8C9g5E8="; + }) + ]; + + propagatedBuildInputs = [ + six + pyyaml + rdflib + ply + xmltodict + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "spdx" + ]; + + meta = with lib; { + description = "SPDX parser and tools"; + homepage = "https://github.com/spdx/tools-python"; + license = licenses.asl20; + maintainers = teams.determinatesystems.members; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f44d0035ce8b..4d59c3618fac 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8054,6 +8054,8 @@ in { sparse = callPackage ../development/python-modules/sparse { }; + spdx-tools = callPackage ../development/python-modules/spdx-tools { }; + speaklater = callPackage ../development/python-modules/speaklater { }; spectral-cube = callPackage ../development/python-modules/spectral-cube { };