{ lib, buildPythonPackage, fetchFromGitHub, setuptools, isPyPy, # dependencies eth-hash, eth-typing, cytoolz, toolz, pydantic, # nativeCheckInputs hypothesis, mypy, pytestCheckHook, }: buildPythonPackage rec { pname = "eth-utils"; version = "6.0.0"; pyproject = true; src = fetchFromGitHub { owner = "ethereum"; repo = "eth-utils"; tag = "v${version}"; hash = "sha256-U1RSKaLw/gDg4lMjkTwR/Wfb5wqQctML9CDZBILMBys="; }; postPatch = '' # type inference test output expectation changed slightly (don't ask me when it started...) sed -i 's/builtins\.//g' tests/core/functional-utils/test_type_inference.py ''; build-system = [ setuptools ]; propagatedBuildInputs = [ eth-hash eth-typing ] ++ lib.optional (!isPyPy) cytoolz ++ lib.optional isPyPy toolz; nativeCheckInputs = [ hypothesis mypy pytestCheckHook pydantic ] ++ eth-hash.optional-dependencies.pycryptodome; pythonImportsCheck = [ "eth_utils" ]; disabledTests = [ "test_install_local_wheel" ]; disabledTestPaths = [ # Typing tests fail like: # Revealed type is "builtins.tuple[builtins.int, ...]" "tests/core/functional-utils/test_type_inference.py" ]; meta = { changelog = "https://github.com/ethereum/eth-utils/blob/${src.rev}/docs/release_notes.rst"; description = "Common utility functions for codebases which interact with ethereum"; homepage = "https://github.com/ethereum/eth-utils"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ siraben ]; }; }