diff options
Diffstat (limited to 'pkgs/development/python-modules/pettingzoo/default.nix')
-rw-r--r-- | pkgs/development/python-modules/pettingzoo/default.nix | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/pettingzoo/default.nix b/pkgs/development/python-modules/pettingzoo/default.nix new file mode 100644 index 0000000000000..389abd5f89071 --- /dev/null +++ b/pkgs/development/python-modules/pettingzoo/default.nix @@ -0,0 +1,135 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, setuptools +, wheel +, gymnasium +, numpy +, chess +, pillow +, pybox2d +, pygame +, pymunk +, rlcard +, scipy +, pre-commit +, pynput +, pytest +, pytest-cov +, pytest-markdown-docs +, pytest-xdist +, pytestCheckHook +, stdenv +}: + +buildPythonPackage rec { + pname = "pettingzoo"; + version = "1.24.3"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "Farama-Foundation"; + repo = "PettingZoo"; + rev = "refs/tags/${version}"; + hash = "sha256-TVM4MrA4W6AIWEdBIecI85ahJAAc21f27OzCxSpOoZU="; + }; + + build-system = [ + setuptools + wheel + ]; + + dependencies = [ + gymnasium + numpy + ]; + + passthru.optional-dependencies = { + all = [ + chess + # multi-agent-ale-py + pillow + pybox2d + pygame + pymunk + rlcard + scipy + # shimmy + ]; + atari = [ + # multi-agent-ale-py + pygame + ]; + butterfly = [ + pygame + pymunk + ]; + classic = [ + chess + pygame + rlcard + # shimmy + ]; + mpe = [ + pygame + ]; + other = [ + pillow + ]; + sisl = [ + pybox2d + pygame + pymunk + scipy + ]; + testing = [ + # autorom + pre-commit + pynput + pytest + pytest-cov + pytest-markdown-docs + pytest-xdist + ]; + }; + + pythonImportsCheck = [ + "pettingzoo" + ]; + + nativeCheckInputs = [ + chess + pygame + pymunk + pytest-markdown-docs + pytest-xdist + pytestCheckHook + rlcard + ]; + + disabledTestPaths = [ + # Require unpackaged multi_agent_ale_py + "test/all_parameter_combs_test.py" + "test/pickle_test.py" + "test/unwrapped_test.py" + ]; + + disabledTests = [ + # ImportError: cannot import name 'pytest_plugins' from 'pettingzoo.classic' + "test_chess" + ] ++ lib.optionals stdenv.isDarwin [ + # Crashes on darwin: `Fatal Python error: Aborted` + "test_multi_episode_parallel_env_wrapper" + ]; + + meta = with lib; { + description = "An API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities"; + homepage = "https://github.com/Farama-Foundation/PettingZoo"; + changelog = "https://github.com/Farama-Foundation/PettingZoo/releases/tag/${version}"; + license = licenses.mit; + maintainers = with maintainers; [ GaetanLepage ]; + }; +} |