{ buildPythonPackage, fetchPypi, hypothesis, lib, nix-update-script, pytestCheckHook, rustPlatform, }: buildPythonPackage rec { pname = "jsonschema-rs"; version = "0.38.1"; pyproject = true; # Fetching from Pypi, because there is no Cargo.lock in the GitHub repo. src = fetchPypi { inherit version; pname = "jsonschema_rs"; hash = "sha256-zkbJ5DgntAnrqthloCPAPoaEx3+hc8BAicttgQXKG9w="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; hash = "sha256-DqUBqpFFnxth5b1wvwWVFbhUeTBJEHTfCYZoJyhIfgU="; }; nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ]; nativeCheckInputs = [ hypothesis pytestCheckHook ]; pythonImportsCheck = [ "jsonschema_rs" ]; passthru.updateScript = nix-update-script { }; meta = { description = "High-performance JSON Schema validator for Python"; homepage = "https://github.com/Stranger6667/jsonschema/tree/master/crates/jsonschema-py"; changelog = "https://github.com/Stranger6667/jsonschema/blob/python-v${version}/crates/jsonschema-py/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ DutchGerman friedow ]; }; }