about summary refs log tree commit diff
path: root/pkgs/development/python-modules/shimmy/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/shimmy/default.nix')
-rw-r--r--pkgs/development/python-modules/shimmy/default.nix97
1 files changed, 97 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/shimmy/default.nix b/pkgs/development/python-modules/shimmy/default.nix
new file mode 100644
index 0000000000000..6604fc134f620
--- /dev/null
+++ b/pkgs/development/python-modules/shimmy/default.nix
@@ -0,0 +1,97 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  gymnasium,
+  numpy,
+  ale-py,
+  bsuite,
+  dm-control,
+  gym,
+  imageio,
+  pettingzoo,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "shimmy";
+  version = "1.3.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Farama-Foundation";
+    repo = "Shimmy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rYBbGyMSFF/iIGruKn2JXKAVIZIfJDEHUEZUESiUg/k=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    gymnasium
+    numpy
+  ];
+
+  pythonImportsCheck = [ "shimmy" ];
+
+  nativeCheckInputs = [
+    ale-py
+    bsuite
+    dm-control
+    gym
+    imageio
+    pettingzoo
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Requires unpackaged pyspiel
+    "tests/test_openspiel.py"
+
+    # Broken since ale-py v0.9.0 due to API change
+    # https://github.com/Farama-Foundation/Shimmy/issues/120
+    "tests/test_atari.py"
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    # Require network access
+    "test_check_env[bsuite/mnist_noise-v0]"
+    "test_check_env[bsuite/mnist_scale-v0]"
+    "test_check_env[bsuite/mnist-v0]"
+    "test_existing_env"
+    "test_loading_env"
+    "test_pickle[bsuite/mnist-v0]"
+    "test_seeding[bsuite/mnist_noise-v0]"
+    "test_seeding[bsuite/mnist_scale-v0]"
+    "test_seeding[bsuite/mnist-v0]"
+    "test_seeding"
+
+    # RuntimeError: std::exception
+    "test_check_env"
+    "test_seeding[dm_control/quadruped-escape-v0]"
+    "test_rendering_camera_id"
+    "test_rendering_multiple_cameras"
+    "test_rendering_depth"
+    "test_render_height_widths"
+  ];
+
+  meta = {
+    changelog = "https://github.com/Farama-Foundation/Shimmy/releases/tag/v${version}";
+    description = "An API conversion tool for popular external reinforcement learning environments";
+    homepage = "https://github.com/Farama-Foundation/Shimmy";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}