diff --git a/pkgs/development/python-modules/hyperscan/default.nix b/pkgs/development/python-modules/hyperscan/default.nix new file mode 100644 index 000000000000..342dda967cfe --- /dev/null +++ b/pkgs/development/python-modules/hyperscan/default.nix @@ -0,0 +1,54 @@ +{ lib +, pkgs +, buildPythonPackage +, fetchFromGitHub +, pdm-backend +, setuptools +, wheel +, pcre +, pkg-config +, pytestCheckHook +, pytest-mock +}: + +buildPythonPackage rec { + pname = "hyperscan"; + version = "0.6.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "darvid"; + repo = "python-hyperscan"; + rev = "v${version}"; + hash = "sha256-6PoV9rY9CkXkAMWN2QCnfU4S0OJD/6bzkqFgvEVqNjo="; + }; + + buildInputs = [ + (pkgs.hyperscan.override { withStatic = true; }) + # we need static pcre to be built, by default only shared library is built + (pcre.overrideAttrs { dontDisableStatic = 0; }) + ]; + + nativeBuildInputs = [ + pkg-config + pdm-backend + setuptools + wheel + ]; + + pythonImportsCheck = [ "hyperscan" ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-mock + ]; + + meta = with lib; { + description = "A CPython extension for the Hyperscan regular expression matching library"; + homepage = "https://github.com/darvid/python-hyperscan"; + changelog = "https://github.com/darvid/python-hyperscan/blob/${src.rev}/CHANGELOG.md"; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + license = licenses.mit; + maintainers = with maintainers; [ mbalatsko ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 449c4ff9357b..05008358b873 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5114,6 +5114,8 @@ self: super: with self; { hyperframe = callPackage ../development/python-modules/hyperframe { }; + hyperscan = callPackage ../development/python-modules/hyperscan { }; + hyperion-py = callPackage ../development/python-modules/hyperion-py { }; hyperlink = callPackage ../development/python-modules/hyperlink { };