summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Ainsworth <skainsworth@gmail.com>2023-08-29 18:43:30 -0400
committerGitHub <noreply@github.com>2023-08-29 18:43:30 -0400
commit0ebafc300822c01e06c2b2d753b7ae8015d99b98 (patch)
treea7e17df7d32d3688b5cfbbf8ca7e1b862d7ebd47
parent147999c8cbd11bd85f46489f3ea12b3ee9841908 (diff)
parentba48b30bb299b1e58c364bff84d113063b93a4ba (diff)
downloadnixpkgs-0ebafc300822c01e06c2b2d753b7ae8015d99b98.tar
nixpkgs-0ebafc300822c01e06c2b2d753b7ae8015d99b98.tar.gz
nixpkgs-0ebafc300822c01e06c2b2d753b7ae8015d99b98.tar.bz2
nixpkgs-0ebafc300822c01e06c2b2d753b7ae8015d99b98.tar.lz
nixpkgs-0ebafc300822c01e06c2b2d753b7ae8015d99b98.tar.xz
nixpkgs-0ebafc300822c01e06c2b2d753b7ae8015d99b98.tar.zst
nixpkgs-0ebafc300822c01e06c2b2d753b7ae8015d99b98.zip
Merge pull request #250554 from GaetanLepage/gymnasium
python310Packages.gymnasium: 0.29.0 -> 0.29.1
-rw-r--r--pkgs/development/python-modules/gymnasium/default.nix49
-rw-r--r--pkgs/development/python-modules/pybox2d/default.nix44
-rw-r--r--pkgs/top-level/python-packages.nix2
3 files changed, 87 insertions, 8 deletions
diff --git a/pkgs/development/python-modules/gymnasium/default.nix b/pkgs/development/python-modules/gymnasium/default.nix
index 9926b3cfe91..6e9e33913fb 100644
--- a/pkgs/development/python-modules/gymnasium/default.nix
+++ b/pkgs/development/python-modules/gymnasium/default.nix
@@ -10,34 +10,67 @@
 , farama-notifications
 , importlib-metadata
 , pythonOlder
+, ffmpeg
+, jax
+, jaxlib
+, matplotlib
+, moviepy
+, opencv4
+, pybox2d
+, pygame
+, pytestCheckHook
+, scipy
 }:
 
 buildPythonPackage rec {
   pname = "gymnasium";
-  version = "0.29.0";
+  version = "0.29.1";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Farama-Foundation";
-    repo = pname;
+    repo = "gymnasium";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4YaEFEWSOTEdGgO1kSOleZQp7OrcOf+WAT/E0BWeoKI=";
+    hash = "sha256-L7fn9FaJzXwQhjDKwI9hlFpbPuQdwynU+Xjd8bbjxiw=";
   };
 
-  format = "pyproject";
-
   nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
-    jax-jumpy
     cloudpickle
-    numpy
+    farama-notifications
     gym-notices
+    jax-jumpy
+    numpy
     typing-extensions
-    farama-notifications
   ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   pythonImportsCheck = [ "gymnasium" ];
 
+  nativeCheckInputs = [
+    ffmpeg
+    jax
+    jaxlib
+    matplotlib
+    moviepy
+    opencv4
+    pybox2d
+    pygame
+    pytestCheckHook
+    scipy
+  ];
+
+  disabledTestPaths = [
+    # mujoco is required for those tests but the mujoco python bindings are not packaged in nixpkgs.
+    "tests/envs/mujoco/test_mujoco_custom_env.py"
+
+    # Those tests need to write on the filesystem which cause them to fail.
+    "tests/experimental/wrappers/test_record_video.py"
+    "tests/utils/test_save_video.py"
+    "tests/wrappers/test_record_video.py"
+    "tests/wrappers/test_video_recorder.py"
+  ];
+
   meta = with lib; {
     description = "A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)";
     homepage = "https://github.com/Farama-Foundation/Gymnasium";
diff --git a/pkgs/development/python-modules/pybox2d/default.nix b/pkgs/development/python-modules/pybox2d/default.nix
new file mode 100644
index 00000000000..c7a8e7d83eb
--- /dev/null
+++ b/pkgs/development/python-modules/pybox2d/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, swig
+}:
+
+buildPythonPackage rec {
+  pname = "pybox2d";
+  version = "2.3.10";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "pybox2d";
+    repo = "pybox2d";
+    rev = "refs/tags/${version}";
+    hash = "sha256-yjLFvsg8GQLxjN1vtZM9zl+kAmD4+eS/vzRkpj0SCjY=";
+  };
+
+  nativeBuildInputs = [
+    swig
+  ];
+
+  # We need to build the package explicitly a first time so that the library/Box2D/Box2D.py file
+  # gets generated.
+  # After that, the default behavior will succeed at installing the package.
+  preBuild = ''
+    python setup.py build
+  '';
+
+  pythonImportsCheck = [
+    "Box2D"
+    "Box2D._Box2D"
+  ];
+
+  # Tests need to start GUI windows.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "2D Game Physics for Python";
+    homepage = "https://github.com/pybox2d/pybox2d";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 0c261dc3386..f36aeb1e047 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -8794,6 +8794,8 @@ self: super: with self; {
 
   pybotvac = callPackage ../development/python-modules/pybotvac { };
 
+  pybox2d = callPackage ../development/python-modules/pybox2d { };
+
   pybravia = callPackage ../development/python-modules/pybravia { };
 
   pybrowserid = callPackage ../development/python-modules/pybrowserid { };