1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6 setuptools,
7 wheel,
8 google-cloud-storage,
9 gymnasium,
10 h5py,
11 numpy,
12 packaging,
13 portion,
14 rich,
15 tqdm,
16 typer,
17 typing-extensions,
18 imageio,
19 nbmake,
20 pytest,
21 pytest-markdown-docs,
22 pytestCheckHook,
23}:
24
25buildPythonPackage rec {
26 pname = "minari";
27 version = "0.4.3";
28 pyproject = true;
29
30 disabled = pythonOlder "3.8";
31
32 src = fetchFromGitHub {
33 owner = "Farama-Foundation";
34 repo = "Minari";
35 rev = "refs/tags/v${version}";
36 hash = "sha256-DwuANo0PCb2pPTVST8EwuJHe5HKRV8JIpFBpSqoJNh8=";
37 };
38
39 build-system = [
40 setuptools
41 wheel
42 ];
43
44 dependencies = [
45 google-cloud-storage
46 gymnasium
47 h5py
48 numpy
49 packaging
50 portion
51 rich
52 tqdm
53 typer
54 typing-extensions
55 ];
56
57 passthru.optional-dependencies = {
58 testing = [
59 # gymnasium-robotics
60 imageio
61 nbmake
62 pytest
63 pytest-markdown-docs
64 ];
65 };
66
67 pythonImportsCheck = [ "minari" ];
68
69 nativeCheckInputs = [ pytestCheckHook ];
70
71 disabledTestPaths = [
72 # Require internet access
73 "tests/dataset/test_dataset_download.py"
74 "tests/test_cli.py"
75 ];
76
77 meta = with lib; {
78 description = "Standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities";
79 homepage = "https://github.com/Farama-Foundation/Minari";
80 changelog = "https://github.com/Farama-Foundation/Minari/releases/tag/v${version}";
81 license = with licenses; [
82 asl20
83 mit
84 ];
85 maintainers = with maintainers; [ GaetanLepage ];
86 mainProgram = "minari";
87 };
88}