1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 setuptools,
7 gym,
8 gymnasium,
9 torch,
10 tensorboard,
11 tqdm,
12 wandb,
13 packaging,
14 pytestCheckHook,
15}:
16
17buildPythonPackage rec {
18 pname = "skrl";
19 version = "1.1.0";
20 pyproject = true;
21 disabled = pythonOlder "3.6";
22
23 src = fetchFromGitHub {
24 owner = "Toni-SM";
25 repo = pname;
26 rev = "refs/tags/${version}";
27 hash = "sha256-JsE8QQNOqvFQylrPuHEjejOTeQL652rM0EteAfLyeVI=";
28 };
29
30 nativeBuildInputs = [ setuptools ];
31
32 propagatedBuildInputs = [
33 gym
34 gymnasium
35 torch
36 tensorboard
37 tqdm
38 wandb
39 packaging
40 ];
41
42 nativeCheckInputs = [ pytestCheckHook ];
43 doCheck = torch.cudaSupport;
44
45 pythonImportsCheck = [
46 "skrl"
47 "skrl.agents"
48 "skrl.agents.torch"
49 "skrl.envs"
50 "skrl.envs.torch"
51 "skrl.models"
52 "skrl.models.torch"
53 "skrl.resources"
54 "skrl.resources.noises"
55 "skrl.resources.noises.torch"
56 "skrl.resources.schedulers"
57 "skrl.resources.schedulers.torch"
58 "skrl.trainers"
59 "skrl.trainers.torch"
60 "skrl.utils"
61 "skrl.utils.model_instantiators"
62 ];
63
64 meta = with lib; {
65 description = "Reinforcement learning library using PyTorch focusing on readability and simplicity";
66 homepage = "https://skrl.readthedocs.io";
67 license = licenses.mit;
68 maintainers = with maintainers; [ bcdarwin ];
69 };
70}