From c44504410ba5a3bd76a99e7907533779c2b17694 Mon Sep 17 00:00:00 2001
From: Jaakko Luttinen <jaakko.luttinen@iki.fi>
Date: Sun, 26 Aug 2018 14:09:30 +0300
Subject: [PATCH] pythonPackages.eth-hash: init at 0.1.14

---
 .../python-modules/eth-hash/default.nix       | 45 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 +
 2 files changed, 47 insertions(+)
 create mode 100644 pkgs/development/python-modules/eth-hash/default.nix

diff --git a/pkgs/development/python-modules/eth-hash/default.nix b/pkgs/development/python-modules/eth-hash/default.nix
new file mode 100644
index 00000000000..ce5fce1b1cb
--- /dev/null
+++ b/pkgs/development/python-modules/eth-hash/default.nix
@@ -0,0 +1,45 @@
+{ lib, fetchPypi, buildPythonPackage, pythonOlder, pytest, pysha3, pycrypto,
+  pycryptodome }:
+
+buildPythonPackage rec {
+  pname = "eth-hash";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xpiz0wrxxj11ki9yapvsibl25qnki90bl3d39nqascg14nw17a9";
+  };
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ pysha3 pycrypto pycryptodome ];
+
+  # setuptools-markdown uses pypandoc which is broken at the moment
+  preConfigure = ''
+    substituteInPlace setup.py --replace \'setuptools-markdown\' ""
+  '';
+
+  # Run tests separately because we don't want to run tests on tests/backends/
+  # but only on its selected subdirectories. Also, the directories under
+  # tests/backends/ must be run separately because they have identically named
+  # test files so pytest would raise errors because of that.
+  #
+  # Also, tests in tests/core/test_import.py are broken so just ignore them:
+  # https://github.com/ethereum/eth-hash/issues/25
+  # There is a pull request to fix the tests:
+  # https://github.com/ethereum/eth-hash/pull/26
+  checkPhase = ''
+    pytest tests/backends/pycryptodome/
+    pytest tests/backends/pysha3/
+    # pytest tests/core/
+  '';
+
+  disabled = pythonOlder "3.5";
+
+  meta = {
+    description = "The Ethereum hashing function keccak256";
+    homepage = https://github.com/ethereum/eth-hash;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ jluttine ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 157f45f3f2a..1f55ead0053 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1655,6 +1655,8 @@ in {
 
   envs = callPackage ../development/python-modules/envs { };
 
+  eth-hash = callPackage ../development/python-modules/eth-hash { };
+
   jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
   jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };