tianshou: init at 1.1.0; sensai-utils: init at 1.4.0; rlcard: patch distutils; pettingzoo: fix dependencies (#384526)

This commit is contained in:
Sandro
2025-02-23 20:54:49 +01:00
committed by GitHub
5 changed files with 240 additions and 22 deletions
@@ -1,27 +1,28 @@
{
lib,
buildPythonPackage,
pythonOlder,
chess,
fetchFromGitHub,
setuptools,
wheel,
gymnasium,
numpy,
chess,
pillow,
pre-commit,
pybox2d,
pygame,
pymunk,
rlcard,
scipy,
pre-commit,
pynput,
pytest,
pytest-cov-stub,
pytest-markdown-docs,
pytest-xdist,
pytestCheckHook,
pythonOlder,
rlcard,
scipy,
setuptools,
shimmy,
stdenv,
wheel,
}:
buildPythonPackage rec {
@@ -49,17 +50,7 @@ buildPythonPackage rec {
];
optional-dependencies = {
all = [
chess
# multi-agent-ale-py
pillow
pybox2d
pygame
pymunk
rlcard
scipy
# shimmy
];
all = lib.flatten (lib.attrValues (lib.filterAttrs (n: v: n != "all") optional-dependencies));
atari = [
# multi-agent-ale-py
pygame
@@ -72,7 +63,7 @@ buildPythonPackage rec {
chess
pygame
rlcard
# shimmy
shimmy
];
mpe = [ pygame ];
other = [ pillow ];
@@ -9,7 +9,7 @@
termcolor,
pytestCheckHook,
torch,
pythonAtLeast,
fetchpatch2,
}:
buildPythonPackage rec {
@@ -24,6 +24,16 @@ buildPythonPackage rec {
hash = "sha256-SWj6DBItQzSM+nioV54a350Li7tbBaVXsQxNAqVgB0k=";
};
patches = [
# Remove distutils to make it compatible with Python 3.12
# https://github.com/datamllab/rlcard/pull/323
(fetchpatch2 {
name = "remove-distutils.patch";
url = "https://github.com/datamllab/rlcard/commit/e44378157aaf229ffe2aaef9fafe500c2844045e.patch";
hash = "sha256-aQS4d9ETj6pDv26G77mC+0xHQMA2hjspAxtAyz0rA6Y=";
})
];
build-system = [
setuptools
wheel
@@ -70,7 +80,5 @@ buildPythonPackage rec {
changelog = "https://github.com/datamllab/rlcard/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ GaetanLepage ];
# Relies on deprecated distutils
broken = pythonAtLeast "3.12";
};
}
@@ -0,0 +1,40 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
pythonOlder,
setuptools,
typing-extensions,
}:
buildPythonPackage rec {
pname = "sensai-utils";
version = "1.4.0";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "opcode81";
repo = "sensAI-utils";
tag = "v${version}";
hash = "sha256-XgZv76tLeTRCvNptasp8EiU2DC+HWkc1xhlCA+YiUZY=";
};
build-system = [ setuptools ];
dependencies = [ typing-extensions ];
pythonImportsCheck = [ "sensai.util" ];
nativeCheckInputs = [ pytestCheckHook ];
meta = with lib; {
description = "Utilities from sensAI, the Python library for sensible AI";
homepage = "https://github.com/opcode81/sensAI-utils";
changelog = "https://github.com/opcode81/sensAI-utils/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ derdennisop ];
};
}
@@ -0,0 +1,175 @@
{
lib,
ale-py,
buildPythonPackage,
cython,
deepdiff,
docstring-parser,
fetchFromGitHub,
gymnasium,
h5py,
imageio,
joblib,
jsonargparse,
matplotlib,
mujoco,
numba,
numpy,
opencv,
overrides,
packaging,
pandas,
pettingzoo,
poetry-core,
pybox2d,
pybullet,
pygame,
pymunk,
pytestCheckHook,
pythonOlder,
scipy,
sensai-utils,
shimmy,
swig,
tensorboard,
torch,
tqdm,
}:
buildPythonPackage rec {
pname = "tianshou";
version = "1.1.0";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "thu-ml";
repo = "tianshou";
tag = "v${version}";
hash = "sha256-eiwbSX8Q3KF6h7CfjuZ+7HlXwpvLga1NVr3e+FkPaHc=";
};
pythonRelaxDeps = [
"deepdiff"
"gymnasium"
"numpy"
];
pythonRemoveDeps = [ "virtualenv" ];
postPatch = ''
# silence matplotlib warning
export MPLCONFIGDIR=$(mktemp -d)
'';
build-system = [ poetry-core ];
dependencies = [
deepdiff
gymnasium
h5py
matplotlib
numba
numpy
overrides
packaging
pandas
pettingzoo
sensai-utils
tensorboard
torch
tqdm
];
optional-dependencies = {
all = lib.flatten (lib.attrValues (lib.filterAttrs (n: v: n != "all") optional-dependencies));
argparse = [
docstring-parser
jsonargparse
];
atari = [
ale-py
# autorom
opencv
shimmy
];
box2d = [
# instead of box2d-py
pybox2d
pygame
swig
];
classic_control = [
pygame
];
mujoco = [
mujoco
imageio
cython
];
pybullet = [
pybullet
];
# envpool = [
# envpool
# ];
# robotics = [
# gymnasium-robotics
# ];
# vizdoom = [
# vizdoom
# ];
eval = [
docstring-parser
joblib
jsonargparse
# rliable
scipy
];
};
pythonImportsCheck = [ "tianshou" ];
nativeCheckInputs = [
pygame
pymunk
pytestCheckHook
];
disabledTestPaths = [
# remove tests that require lot of compute (ai model training tests)
"test/continuous"
"test/discrete"
"test/highlevel"
"test/modelbased"
"test/offline"
];
disabledTests = [
# AttributeError: 'TimeLimit' object has no attribute 'test_attribute'
"test_attr_unwrapped"
# Failed: DID NOT RAISE <class 'TypeError'>
"test_batch"
# Failed: Raised AssertionError
"test_vecenv"
];
meta = with lib; {
description = "Elegant PyTorch deep reinforcement learning library";
homepage = "https://github.com/thu-ml/tianshou";
changelog = "https://github.com/thu-ml/tianshou/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ derdennisop ];
};
}
+4
View File
@@ -14864,6 +14864,8 @@ self: super: with self; {
senf = callPackage ../development/python-modules/senf { };
sensai-utils = callPackage ../development/python-modules/sensai-utils { };
sense-energy = callPackage ../development/python-modules/sense-energy { };
sensirion-ble = callPackage ../development/python-modules/sensirion-ble { };
@@ -16422,6 +16424,8 @@ self: super: with self; {
py = python.override (lib.optionalAttrs (!python.isPyPy) { x11Support = true; });
};
tianshou = callPackage ../development/python-modules/tianshou { };
tidalapi = callPackage ../development/python-modules/tidalapi { };
tidyexc = callPackage ../development/python-modules/tidyexc { };