1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 numpy,
6 llvmPackages,
7 wurlitzer,
8 pytestCheckHook,
9}:
10
11buildPythonPackage rec {
12 pname = "wasserstein";
13 version = "1.1.0";
14 format = "setuptools";
15
16 src = fetchFromGitHub {
17 owner = "pkomiske";
18 repo = "Wasserstein";
19 rev = "89c2d6279a7e0aa3b56bcc8fb7b6009420f2563e"; # https://github.com/pkomiske/Wasserstein/issues/1
20 hash = "sha256-s9en6XwvO/WPsF7/+SEmGePHZQgl7zLgu5sEn4nD9YE=";
21 };
22
23 buildInputs = [ llvmPackages.openmp ];
24 propagatedBuildInputs = [
25 numpy
26 wurlitzer
27 ];
28
29 nativeCheckInputs = [ pytestCheckHook ];
30 pytestFlagsArray = [ "wasserstein/tests" ];
31 disabledTestPaths = [
32 "wasserstein/tests/test_emd.py" # requires "ot"
33 # cyclic dependency on energyflow
34 "wasserstein/tests/test_externalemdhandler.py"
35 "wasserstein/tests/test_pairwiseemd.py"
36 ];
37
38 pythonImportsCheck = [ "wasserstein" ];
39
40 meta = with lib; {
41 description = "Python/C++ library for computing Wasserstein distances efficiently";
42 homepage = "https://github.com/pkomiske/Wasserstein";
43 license = licenses.gpl3Only;
44 maintainers = with maintainers; [ veprbl ];
45 };
46}