{ lib, stdenv, buildPythonPackage, fetchFromGitHub, libiconv, numpy, pytestCheckHook, rustPlatform, }: buildPythonPackage rec { pname = "blake3"; version = "0.4.1"; pyproject = true; src = fetchFromGitHub { owner = "oconnor663"; repo = "blake3-py"; rev = "refs/tags/${version}"; hash = "sha256-Ju40ea8IQMOPg9BiN47BMmr/WU8HptbqqzVI+jNGpA8="; }; postPatch = '' ln -s '${./Cargo.lock}' Cargo.lock ''; cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; }; buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ]; nativeCheckInputs = [ pytestCheckHook numpy ]; pythonImportsCheck = [ "blake3" ]; meta = { description = "Python bindings for the BLAKE3 cryptographic hash function"; homepage = "https://github.com/oconnor663/blake3-py"; changelog = "https://github.com/oconnor663/blake3-py/releases/tag/${version}"; license = with lib.licenses; [ cc0 asl20 ]; maintainers = with lib.maintainers; [ Luflosi ]; }; }