diff --git a/pkgs/development/python-modules/nh3/default.nix b/pkgs/development/python-modules/nh3/default.nix new file mode 100644 index 000000000000..2bcdb6d49cde --- /dev/null +++ b/pkgs/development/python-modules/nh3/default.nix @@ -0,0 +1,46 @@ +{ lib +, stdenv +, buildPythonPackage +, pythonOlder +, rustPlatform +, libiconv +, fetchFromGitHub +, darwin +}: +let + pname = "nh3"; + version = "0.2.13"; + src = fetchFromGitHub { + owner = "messense"; + repo = pname; + rev = "v${version}"; + hash = "sha256-NILPy+lC0jhOF6ykriUPZWHLlSYBC00tpDdfJ6XjcjA="; + }; +in +buildPythonPackage { + inherit pname version src; + format = "pyproject"; + disabled = pythonOlder "3.6"; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-Ror2KcIdSeXHa44eUWGiPsKiD935hsBREREySbGedxA="; + }; + + nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + libiconv + darwin.apple_sdk.frameworks.Security + ]; + + pythonImportsCheck = [ "nh3" ]; + + meta = with lib; { + description = "Python binding to Ammonia HTML sanitizer Rust crate"; + homepage = "https://github.com/messense/nh3"; + license = licenses.mit; + maintainers = with maintainers; [ happysalada ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b694d50a62d5..c65437a7c68d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6862,6 +6862,8 @@ self: super: with self; { enablePython = true; # ... and its Python bindings })).python; + nh3 = callPackage ../development/python-modules/nh3 { }; + niaaml = callPackage ../development/python-modules/niaaml { }; nianet = callPackage ../development/python-modules/nianet { };