From 1d00bb137598b3bc99ff473b139f1f7878c8c43f Mon Sep 17 00:00:00 2001 From: Timo Kaufmann Date: Fri, 12 Apr 2019 17:48:57 +0200 Subject: [PATCH 1/3] python.pkgs.tensorflow-probability: init at 0.6.0 Needed as a dependency for dm-sonnet. --- .../tensorflow-probability/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/tensorflow-probability/default.nix diff --git a/pkgs/development/python-modules/tensorflow-probability/default.nix b/pkgs/development/python-modules/tensorflow-probability/default.nix new file mode 100644 index 00000000000..aa32904b8d3 --- /dev/null +++ b/pkgs/development/python-modules/tensorflow-probability/default.nix @@ -0,0 +1,41 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, tensorflow +, pytest +}: + +buildPythonPackage rec { + pname = "tensorflow-probability"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "tensorflow"; + repo = "probability"; + rev = "v${version}"; + sha256 = "1y210n4asv8j39pk68bdfrz01gddflvzhxbcvj5jw6rjgaagnhvx"; + }; + + propagatedBuildInputs = [ + tensorflow + ]; + + checkInputs = [ + pytest + ]; + + # Tests have an invalid import (`tensorflow_probability.opensource`), should + # be resolved in the next version with + # https://github.com/tensorflow/probability/commit/77d5957f2f0bdddcb46582799cd9c5c5167a1a40 + doCheck = false; + checkPhase = '' + py.test + ''; + + meta = with lib; { + description = "Library for probabilistic reasoning and statistical analysis"; + homepage = https://www.tensorflow.org/probability/; + license = licenses.asl20; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0bf2158243c..1de7388833e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5143,6 +5143,8 @@ in { tensorflow-estimator = callPackage ../development/python-modules/tensorflow-estimator { }; + tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { }; + tensorflow-tensorboard = callPackage ../development/python-modules/tensorflow-tensorboard { }; tensorflow = From 11801a4d4784bcc1e730c599659814860cc0287e Mon Sep 17 00:00:00 2001 From: Timo Kaufmann Date: Fri, 12 Apr 2019 18:17:36 +0200 Subject: [PATCH 2/3] python.pkgs.dm-sonnet: init at 1.30 Needed as a dependency of graph_nets. --- .../python-modules/dm-sonnet/default.nix | 85 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 87 insertions(+) create mode 100644 pkgs/development/python-modules/dm-sonnet/default.nix diff --git a/pkgs/development/python-modules/dm-sonnet/default.nix b/pkgs/development/python-modules/dm-sonnet/default.nix new file mode 100644 index 00000000000..71808436417 --- /dev/null +++ b/pkgs/development/python-modules/dm-sonnet/default.nix @@ -0,0 +1,85 @@ +{ lib +, fetchFromGitHub +, buildBazelPackage +, buildPythonPackage +, git +, python +, six +, absl-py +, semantic-version +, contextlib2 +, wrapt +, tensorflow +, tensorflow-probability +}: + +let + version = "1.30"; + + # first build all binaries and generate setup.py using bazel + bazel-build = buildBazelPackage rec { + name = "dm-sonnet-bazel-${version}"; + + src = fetchFromGitHub { + owner = "deepmind"; + repo = "sonnet"; + rev = "v${version}"; + sha256 = "1dli4a4arx2gmb4p676pfibvnpag9f13znisrk9381g7xpqqmaw6"; + }; + + nativeBuildInputs = [ + git # needed to fetch the bazel deps (protobuf in particular) + ]; + + # see https://github.com/deepmind/sonnet/blob/master/docs/INSTALL.md + bazelTarget = ":install"; + + fetchAttrs = { + sha256 = "1qwq6xp6gdmy8f0k96q3nsgqs56adrbgq39g5smwik6griwfx9mr"; + }; + + buildAttrs = { + preBuild = '' + patchShebangs . + ''; + + installPhase = '' + # do not generate a wheel, instead just copy the generated files to $out to be installed by buildPythonPackage + sed -i 's,.*bdist_wheel.*,cp -rL . "$out"; exit 0,' bazel-bin/install + + # the target directory "dist" does not actually matter since we're not generating a wheel + bazel-bin/install dist + ''; + }; + }; + +# now use pip to install the package prepared by bazel +in buildPythonPackage rec { + pname = "dm-sonnet"; + inherit version; + + src = bazel-build; + + propagatedBuildInputs = [ + six + absl-py + semantic-version + contextlib2 + wrapt + tensorflow + tensorflow-probability + ]; + + # not sure how to properly run the real test suite -- through bazel? + checkPhase = '' + ${python.interpreter} -c "import sonnet" + ''; + + meta = with lib; { + description = "TensorFlow-based neural network library"; + homepage = https://sonnet.dev; + license = licenses.asl20; + maintainers = with maintainers; [ timokau ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1de7388833e..37a3b376cf1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4927,6 +4927,8 @@ in { snapperGUI = callPackage ../development/python-modules/snappergui { }; + dm-sonnet = callPackage ../development/python-modules/dm-sonnet { }; + uncertainties = callPackage ../development/python-modules/uncertainties { }; funcy = callPackage ../development/python-modules/funcy { }; From d88406a43fe9a96b0e07cd3e691233af6d822b0f Mon Sep 17 00:00:00 2001 From: Timo Kaufmann Date: Fri, 12 Apr 2019 18:25:25 +0200 Subject: [PATCH 3/3] python.pkgs.graph_nets: init at 1.0.3 --- .../python-modules/graph_nets/default.nix | 47 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 49 insertions(+) create mode 100644 pkgs/development/python-modules/graph_nets/default.nix diff --git a/pkgs/development/python-modules/graph_nets/default.nix b/pkgs/development/python-modules/graph_nets/default.nix new file mode 100644 index 00000000000..58aa6c84ade --- /dev/null +++ b/pkgs/development/python-modules/graph_nets/default.nix @@ -0,0 +1,47 @@ +{ lib +, buildPythonPackage +, fetchPypi +, tensorflow +, absl-py +, dm-sonnet +, networkx +, numpy +, setuptools +, six +, future +}: + +buildPythonPackage rec { + pname = "graph_nets"; + version = "1.0.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "15cbs9smmgqz2n9mnlzdbqj3iv9iw179d2g0f9lnimdy7xl4jqdf"; + }; + + buildInputs = []; + + postPatch = '' + # https://github.com/deepmind/graph_nets/issues/63 + sed -i 's/dm-sonnet==1.23/dm-sonnet/' setup.py + ''; + + propagatedBuildInputs = [ + tensorflow + absl-py + dm-sonnet + networkx + numpy + setuptools + six + future + ]; + + meta = with lib; { + description = "Build Graph Nets in Tensorflow"; + homepage = https://github.com/deepmind/graph_nets; + license = licenses.asl20; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 37a3b376cf1..934aa1cb1c9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4877,6 +4877,8 @@ in { graphite_beacon = callPackage ../development/python-modules/graphite_beacon { }; + graph_nets = callPackage ../development/python-modules/graph_nets { }; + influxgraph = callPackage ../development/python-modules/influxgraph { }; graphitepager = callPackage ../development/python-modules/graphitepager { };