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.4.3";
20 pyproject = true;
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "Toni-SM";
25 repo = "skrl";
26 tag = version;
27 hash = "sha256-5lkoYAmMIWqK3+E3WxXMWS9zal2DhZkfl30EkrHKpdI=";
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 changelog = "https://github.com/Toni-SM/skrl/releases/tag/${version}";
67 homepage = "https://skrl.readthedocs.io";
68 license = licenses.mit;
69 maintainers = with maintainers; [ bcdarwin ];
70 };
71}