{ lib, fetchPypi, buildPythonPackage, pythonOlder, rustPlatform, bitstring, cachetools, cffi, deprecation, iconv, matplotlib, numpy, scipy, screed, hypothesis, pytest-xdist, pyyaml, pytestCheckHook, }: buildPythonPackage rec { pname = "sourmash"; version = "4.8.4"; format = "pyproject"; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; hash = "sha256-Q1hMESwzEHGXcd4XW4nLqU8cLTCxrqRgAOr1qB77roo="; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${pname}-${version}"; hash = "sha256-HisWvJgx15OfYoMzzqYm1JyY1/jmGXBSZZmuNaKTDjI="; }; nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ]; buildInputs = [ iconv ]; propagatedBuildInputs = [ bitstring cachetools cffi deprecation matplotlib numpy scipy screed ]; pythonImportsCheck = [ "sourmash" ]; nativeCheckInputs = [ hypothesis pytest-xdist pytestCheckHook pyyaml ]; # TODO(luizirber): Working on fixing these upstream disabledTests = [ "test_compare_no_such_file" "test_do_sourmash_index_multiscaled_rescale_fail" "test_metagenome_kreport_out_fail" ]; meta = with lib; { description = "Quickly search, compare, and analyze genomic and metagenomic data sets"; mainProgram = "sourmash"; homepage = "https://sourmash.bio"; changelog = "https://github.com/sourmash-bio/sourmash/releases/tag/v${version}"; maintainers = with maintainers; [ luizirber ]; license = licenses.bsd3; }; }