1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 eth-hash,
6 eth-typing,
7 cytoolz,
8 hypothesis,
9 isPyPy,
10 pytestCheckHook,
11 pythonOlder,
12 setuptools,
13 toolz,
14 mypy,
15}:
16
17buildPythonPackage rec {
18 pname = "eth-utils";
19 version = "5.1.0";
20 pyproject = true;
21 disabled = pythonOlder "3.6";
22
23 src = fetchFromGitHub {
24 owner = "ethereum";
25 repo = "eth-utils";
26 rev = "v${version}";
27 hash = "sha256-uPzg1gUEsulQL2u22R/REHWx1ZtbMxvcXf6UgWqkDF4=";
28 };
29
30 nativeBuildInputs = [ setuptools ];
31
32 propagatedBuildInputs =
33 [
34 eth-hash
35 eth-typing
36 ]
37 ++ lib.optional (!isPyPy) cytoolz
38 ++ lib.optional isPyPy toolz;
39
40 nativeCheckInputs = [
41 hypothesis
42 pytestCheckHook
43 mypy
44 ] ++ eth-hash.optional-dependencies.pycryptodome;
45
46 pythonImportsCheck = [ "eth_utils" ];
47
48 disabledTests = [ "test_install_local_wheel" ];
49
50 meta = with lib; {
51 changelog = "https://github.com/ethereum/eth-utils/blob/${src.rev}/docs/release_notes.rst";
52 description = "Common utility functions for codebases which interact with ethereum";
53 homepage = "https://github.com/ethereum/eth-utils";
54 license = licenses.mit;
55 maintainers = with maintainers; [ siraben ];
56 };
57}