ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / development / python-modules / deepwave / default.nix
blobf69c386047dbcac60ca7d28e469f112b5b33e58d
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , torch
5 , ninja
6 , scipy
7 , which
8 , pybind11
9 , pytest-xdist
10 , pytestCheckHook
13 let
14   linePatch = ''
15     import os
16     os.environ['PATH'] = os.environ['PATH'] + ':${ninja}/bin'
17   '';
19 buildPythonPackage rec {
20   pname = "deepwave";
21   version = "0.0.14";
22   format = "pyproject";
24   src = fetchFromGitHub {
25     owner = "ar4";
26     repo = pname;
27     rev = "v${version}";
28     sha256 = "sha256-k1MUrnIkllxGIpkEScTZBEDBBNHgJHxau1e/L8TOEKc=";
29   };
31   # unable to find ninja although it is available, most likely because it looks for its pip version
32   postPatch = ''
33     substituteInPlace setup.cfg --replace "ninja" ""
35     # Adding ninja to the path forcibly
36     mv src/deepwave/__init__.py tmp
37     echo "${linePatch}" > src/deepwave/__init__.py
38     cat tmp >> src/deepwave/__init__.py
39     rm tmp
40   '';
42   # The source files are compiled at runtime and cached at the
43   # $HOME/.cache folder, so for the check phase it is needed to
44   # have a temporary home. This is also the reason ninja is not
45   # needed at the nativeBuildInputs, since it will only be used
46   # at runtime.
47   preBuild = ''
48     export HOME=$(mktemp -d)
49   '';
51   propagatedBuildInputs = [ torch pybind11 ];
53   checkInputs = [
54     which
55     scipy
56     pytest-xdist
57     pytestCheckHook
58   ];
60   pythonImportsCheck = [ "deepwave" ];
62   meta = with lib; {
63     description = "Wave propagation modules for PyTorch";
64     homepage = "https://github.com/ar4/deepwave";
65     license = licenses.mit;
66     platforms = intersectLists platforms.x86_64 platforms.linux;
67     maintainers = with maintainers; [ atila ];
68   };