diff options
author | Timo Kaufmann <timokau@zoho.com> | 2019-05-25 14:56:33 +0200 |
---|---|---|
committer | Timo Kaufmann <timokau@zoho.com> | 2019-05-25 15:07:55 +0200 |
commit | 700e8bc64c1756cf9e34d75f1491269e5ebbc116 (patch) | |
tree | dc83cb05f090a835ff0ba10d5ff7c8ff65defbef /pkgs/development/python-modules/rl-coach | |
parent | 3342953dff1c713b88dc1697f0c01bff776ba3d6 (diff) |
python.pkgs.rl-coach: init at 0.12.0
Diffstat (limited to 'pkgs/development/python-modules/rl-coach')
-rw-r--r-- | pkgs/development/python-modules/rl-coach/default.nix | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/rl-coach/default.nix b/pkgs/development/python-modules/rl-coach/default.nix new file mode 100644 index 0000000000000..0dd5d58fc8cbd --- /dev/null +++ b/pkgs/development/python-modules/rl-coach/default.nix @@ -0,0 +1,98 @@ +{ stdenv +, lib +, buildPythonPackage +, pythonOlder +, fetchPypi +, tensorflow +, annoy +, pillow +, matplotlib +, numpy +, pandas +, pygame +, pyopengl +, scipy +, scikitimage +, gym +, bokeh +, kubernetes +, redis +, minio +, pytest +, psutil +}: + +buildPythonPackage rec { + version = "0.12.0"; + pname = "rl-coach"; + + src = fetchPypi { + inherit pname version; + sha256 = "0kfm699rsy63726hpz3fyppl7zbl0fzf0vk2kkfgg718mcjxmdnh"; + }; + + propagatedBuildInputs = [ + tensorflow + annoy + pillow + matplotlib + numpy + pandas + pygame + pyopengl + scipy + scikitimage + gym + bokeh + kubernetes + redis + minio + psutil + ]; + + checkInputs = [ + pytest + ]; + + # run only some tests that do not need any optional dependencies + # available tests: https://github.com/NervanaSystems/coach/tree/master/rl_coach/tests + testsToRun = [ + # test only the tensorflow backend (not mxnet) + "architectures/tensorflow_components" + "agents" + "exploration_policies" + "filters" + "memories" + "utils" + ]; + checkPhase = let + fullTestPaths = map (testfile: "rl_coach/tests/${testfile}") testsToRun; + escapedPaths = map lib.escapeShellArg fullTestPaths; + pytestArgs = builtins.concatStringsSep " " escapedPaths; + in + '' + pytest ${pytestArgs} + ''; + + postPatch = '' + # pinned to 8.0.1 for unknown reason, at least basic functionallity seems to work without it + # https://github.com/NervanaSystems/coach/pull/149#issuecomment-495915804 + sed -i '/kubernetes/d' requirements.txt + + # this is just an "intel-optimized" version of tensorflow, e.g. an implementation detail + sed -i 's/intel-tensorflow/tensorflow/g' setup.py + + # backports of python3 features not needed + # https://github.com/NervanaSystems/coach/issues/324 + sed -i '/futures/d' requirements.txt + ''; + + disabled = pythonOlder "3.5"; # minimum required version + + meta = with stdenv.lib; { + description = "Enables easy experimentation with state of the art Reinforcement Learning algorithms"; + homepage = "https://nervanasystems.github.io/coach/"; + license = licenses.asl20; + maintainers = with maintainers; [ timokau ]; + }; +} |