diff --git a/pkgs/development/python-modules/tantivy/default.nix b/pkgs/development/python-modules/tantivy/default.nix new file mode 100644 index 000000000000..3b7b9a700139 --- /dev/null +++ b/pkgs/development/python-modules/tantivy/default.nix @@ -0,0 +1,69 @@ +{ + lib, + pkgs, + buildPythonPackage, + fetchFromGitHub, + rustPlatform, + + # nativeBuildInputs + pkg-config, + + # tests + mktestdocs, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "tantivy"; + version = "0.25.1"; + pyproject = true; + + # # Python sources are not on the main GitHub repo + # src = fetchPypi { + # inherit pname version; + # hash = "sha256-aKMxRpmn0Y/PM4tSuujORql93hEoo+R+M/pNt/cfJl4="; + # }; + src = fetchFromGitHub { + owner = "quickwit-oss"; + repo = "tantivy-py"; + tag = version; + hash = "sha256-rayr38TfBYCKDddJabhC+r/jIyqJtpKct81h1z8YPFw="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit pname version src; + hash = "sha256-xJdAD/E17mzTkRq5wwNxYtNtv386U1xD4mJhY0LiZFE="; + }; + + nativeBuildInputs = [ + pkg-config + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + buildInputs = [ + pkgs.zstd + ]; + + env = { + ZSTD_SYS_USE_PKG_CONFIG = true; + }; + + pythonImportsCheck = [ "tantivy" ]; + + preCheck = '' + rm -rf tantivy + ''; + + nativeCheckInputs = [ + mktestdocs + pytestCheckHook + ]; + + meta = { + description = "Official Python bindings for the Tantivy search engine"; + homepage = "https://pypi.org/project/tantivy/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index eabf695e3589..45281040bfd8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18408,6 +18408,8 @@ self: super: with self; { tank-utility = callPackage ../development/python-modules/tank-utility { }; + tantivy = callPackage ../development/python-modules/tantivy { }; + tappy = callPackage ../development/python-modules/tappy { }; tapsaff = callPackage ../development/python-modules/tapsaff { };