From d1d2229407f64728b74352c0450bb073f3b0a8ba Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Tue, 26 Mar 2024 17:23:46 +0100
Subject: [PATCH 01/19] WIP add badges
---
README.md | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/README.md b/README.md
index 359118694..00c66b4ec 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,35 @@
# LeRobot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
**State-of-the-art machine learning for real-world robotics**
🤗 LeRobot aims to provide models, datasets, and tools for real-world robotics in PyTorch. The goal is to lower the barrier for entry to robotics so that everyone can contribute and benefit from sharing datasets and pretrained models.
From 6f0c2445ca473bbf42b1ed45706586b026d40f64 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 12:49:10 +0100
Subject: [PATCH 02/19] Improve readme format
---
README.md | 40 ++++++++++++----------------------------
1 file changed, 12 insertions(+), 28 deletions(-)
diff --git a/README.md b/README.md
index 00c66b4ec..816a255da 100644
--- a/README.md
+++ b/README.md
@@ -8,36 +8,20 @@
-# LeRobot
+
+
+---
**State-of-the-art machine learning for real-world robotics**
From 643d64e2a86d20f3b3452de54c979275f7c4632a Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 16:33:26 +0100
Subject: [PATCH 03/19] Add cmake
---
.github/poetry/cpu/poetry.lock | 31 ++++++++++++++++++++++++++++++-
.github/poetry/cpu/pyproject.toml | 1 +
poetry.lock | 31 ++++++++++++++++++++++++++++++-
pyproject.toml | 1 +
4 files changed, 62 insertions(+), 2 deletions(-)
diff --git a/.github/poetry/cpu/poetry.lock b/.github/poetry/cpu/poetry.lock
index ec2b558d7..ef4242f3b 100644
--- a/.github/poetry/cpu/poetry.lock
+++ b/.github/poetry/cpu/poetry.lock
@@ -327,6 +327,35 @@ files = [
{file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"},
]
+[[package]]
+name = "cmake"
+version = "3.29.0.1"
+description = "CMake is an open-source, cross-platform family of tools designed to build, test and package software"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "cmake-3.29.0.1-py3-none-macosx_10_10_universal2.macosx_10_10_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl", hash = "sha256:ec8b39fdeb75c48fd5a2894658a1ca75f94fb49b421c1f753d86d3e5d5e9f196"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ead7dc5176a6c6347b3fc19532c25ec328f9279b6213902ac930242334e7b621"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f7c7dabf3dd40cb830d2eded43d51c5a3737625bbc5ab6916041c04e352b74f8"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de8f55198f4a820daf2c57645a4bb8cd1064dc92d950ad95be14c5ffabc15bd4"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bb8aaa3419eafd466931e4dcc161d3e5e6a82730ab508c75946ff4fc883b3f6"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e956e4b6c2d8d6bbee399bf3c77e5b901d916fe8f35d6b2f58444d5892c4602b"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a8f7c8b07e6ab0dd444c5b74e658d5013ca0da456041029f734d751090bb7ec"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22493049b6383ea2baa7237a326c2914ab4a7b3e1642f4233245e3a34aae39f6"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:d09573411901fc8a3ede7433713c000ac7b81cda0d771874e9182770acf29eb4"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_i686.whl", hash = "sha256:c85e35ec572e54152154637f24d6bde316fbcf94dfea644bd8f22b1855a09abe"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:a36f3b19a5caa6c63aa70bfa0b262bae8d296e68c6e6d8e918edc5c51d952bf8"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:85a0e28eaaee311d50fcee60f730e5a44a65b3cefc556a1163bbabd7328acd60"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:58879ef15dd8344e1583a36cead794fb0fee13f78c590a56749283ac2e27d30a"},
+ {file = "cmake-3.29.0.1-py3-none-win32.whl", hash = "sha256:068a3e7461dd9e487f5f3f720ae8072c2eeb37239ebe4642c4ae29058d83347f"},
+ {file = "cmake-3.29.0.1-py3-none-win_amd64.whl", hash = "sha256:c097892b3653e2d2d41d055c80a9af029fdd24f9eff2ecb66576e4da8b85b1c7"},
+ {file = "cmake-3.29.0.1-py3-none-win_arm64.whl", hash = "sha256:1808071047cb49ed0fe2359e4c310b49880c2805cad4ea9f03c959f51b881ac7"},
+ {file = "cmake-3.29.0.1.tar.gz", hash = "sha256:ec49a7a4480959c229d9d2aa77f7885859c17a45fc66981aaf4551ceffb4d030"},
+]
+
+[package.extras]
+test = ["coverage (>=4.2)", "pytest (>=3.0.3)", "pytest-cov (>=2.4.0)"]
+
[[package]]
name = "colorama"
version = "0.4.6"
@@ -3216,4 +3245,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata]
lock-version = "2.0"
python-versions = "^3.10"
-content-hash = "93c406139c456780b3d309d7ed3d68ea60cc0e8893c1ee717692984e573d3404"
+content-hash = "183331172d7c12815adc4372eff886efa9dd6234a2d07118968ffeff51f5b299"
diff --git a/.github/poetry/cpu/pyproject.toml b/.github/poetry/cpu/pyproject.toml
index 586ef2101..5f5be450d 100644
--- a/.github/poetry/cpu/pyproject.toml
+++ b/.github/poetry/cpu/pyproject.toml
@@ -52,6 +52,7 @@ robomimic = "0.2.0"
huggingface-hub = "^0.21.4"
gymnasium-robotics = "^1.2.4"
gymnasium = "^0.29.1"
+cmake = "^3.29.0.1"
[tool.poetry.group.dev.dependencies]
diff --git a/poetry.lock b/poetry.lock
index e47b02008..a1258c064 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -327,6 +327,35 @@ files = [
{file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"},
]
+[[package]]
+name = "cmake"
+version = "3.29.0.1"
+description = "CMake is an open-source, cross-platform family of tools designed to build, test and package software"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "cmake-3.29.0.1-py3-none-macosx_10_10_universal2.macosx_10_10_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl", hash = "sha256:ec8b39fdeb75c48fd5a2894658a1ca75f94fb49b421c1f753d86d3e5d5e9f196"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ead7dc5176a6c6347b3fc19532c25ec328f9279b6213902ac930242334e7b621"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f7c7dabf3dd40cb830d2eded43d51c5a3737625bbc5ab6916041c04e352b74f8"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de8f55198f4a820daf2c57645a4bb8cd1064dc92d950ad95be14c5ffabc15bd4"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bb8aaa3419eafd466931e4dcc161d3e5e6a82730ab508c75946ff4fc883b3f6"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e956e4b6c2d8d6bbee399bf3c77e5b901d916fe8f35d6b2f58444d5892c4602b"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a8f7c8b07e6ab0dd444c5b74e658d5013ca0da456041029f734d751090bb7ec"},
+ {file = "cmake-3.29.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22493049b6383ea2baa7237a326c2914ab4a7b3e1642f4233245e3a34aae39f6"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:d09573411901fc8a3ede7433713c000ac7b81cda0d771874e9182770acf29eb4"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_i686.whl", hash = "sha256:c85e35ec572e54152154637f24d6bde316fbcf94dfea644bd8f22b1855a09abe"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:a36f3b19a5caa6c63aa70bfa0b262bae8d296e68c6e6d8e918edc5c51d952bf8"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:85a0e28eaaee311d50fcee60f730e5a44a65b3cefc556a1163bbabd7328acd60"},
+ {file = "cmake-3.29.0.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:58879ef15dd8344e1583a36cead794fb0fee13f78c590a56749283ac2e27d30a"},
+ {file = "cmake-3.29.0.1-py3-none-win32.whl", hash = "sha256:068a3e7461dd9e487f5f3f720ae8072c2eeb37239ebe4642c4ae29058d83347f"},
+ {file = "cmake-3.29.0.1-py3-none-win_amd64.whl", hash = "sha256:c097892b3653e2d2d41d055c80a9af029fdd24f9eff2ecb66576e4da8b85b1c7"},
+ {file = "cmake-3.29.0.1-py3-none-win_arm64.whl", hash = "sha256:1808071047cb49ed0fe2359e4c310b49880c2805cad4ea9f03c959f51b881ac7"},
+ {file = "cmake-3.29.0.1.tar.gz", hash = "sha256:ec49a7a4480959c229d9d2aa77f7885859c17a45fc66981aaf4551ceffb4d030"},
+]
+
+[package.extras]
+test = ["coverage (>=4.2)", "pytest (>=3.0.3)", "pytest-cov (>=2.4.0)"]
+
[[package]]
name = "colorama"
version = "0.4.6"
@@ -3475,4 +3504,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata]
lock-version = "2.0"
python-versions = "^3.10"
-content-hash = "99addbfc02bcd35a308f4ecc5b4285c9c5054118f4aadea27650d8bf355d9616"
+content-hash = "408099540ed625da8e50cfe543791d2d1b52e256bbd0c56cfda482c6c5ffff0e"
diff --git a/pyproject.toml b/pyproject.toml
index 29cec3b7d..6b4715003 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -51,6 +51,7 @@ huggingface-hub = {extras = ["hf-transfer"], version = "^0.21.4"}
robomimic = "0.2.0"
gymnasium-robotics = "^1.2.4"
gymnasium = "^0.29.1"
+cmake = "^3.29.0.1"
[tool.poetry.group.dev.dependencies]
From 18e7f4c3e6868c10a05860acb919c4713847dd8a Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 16:33:54 +0100
Subject: [PATCH 04/19] Add requirements.txt
---
requirements.txt | 119 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 119 insertions(+)
create mode 100644 requirements.txt
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 000000000..dc1748f79
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,119 @@
+absl-py==2.1.0 ; python_version >= "3.10" and python_version < "4.0"
+antlr4-python3-runtime==4.9.3 ; python_version >= "3.10" and python_version < "4.0"
+appdirs==1.4.4 ; python_version >= "3.10" and python_version < "4.0"
+asciitree==0.3.3 ; python_version >= "3.10" and python_version < "4.0"
+av==12.0.0 ; python_version >= "3.10" and python_version < "4.0"
+beautifulsoup4==4.12.3 ; python_version >= "3.10" and python_version < "4.0"
+certifi==2024.2.2 ; python_version >= "3.10" and python_version < "4.0"
+cffi==1.16.0 ; python_version >= "3.10" and python_version < "4.0"
+charset-normalizer==3.3.2 ; python_version >= "3.10" and python_version < "4.0"
+click==8.1.7 ; python_version >= "3.10" and python_version < "4.0"
+cloudpickle==3.0.0 ; python_version >= "3.10" and python_version < "4.0"
+cmake==3.29.0.1 ; python_version >= "3.10" and python_version < "4.0"
+colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0" and platform_system == "Windows"
+decorator==4.4.2 ; python_version >= "3.10" and python_version < "4.0"
+diffusers==0.26.3 ; python_version >= "3.10" and python_version < "4.0"
+dm-control==1.0.14 ; python_version >= "3.10" and python_version < "4.0"
+dm-env==1.6 ; python_version >= "3.10" and python_version < "4.0"
+dm-tree==0.1.8 ; python_version >= "3.10" and python_version < "4.0"
+docker-pycreds==0.4.0 ; python_version >= "3.10" and python_version < "4.0"
+egl-probe==1.0.2 ; python_version >= "3.10" and python_version < "4.0"
+einops==0.7.0 ; python_version >= "3.10" and python_version < "4.0"
+farama-notifications==0.0.4 ; python_version >= "3.10" and python_version < "4.0"
+fasteners==0.19 ; python_version >= "3.10" and python_version < "4.0" and sys_platform != "emscripten"
+filelock==3.13.1 ; python_version >= "3.10" and python_version < "4.0"
+fsspec==2024.3.1 ; python_version >= "3.10" and python_version < "4.0"
+gdown==5.1.0 ; python_version >= "3.10" and python_version < "4.0"
+gitdb==4.0.11 ; python_version >= "3.10" and python_version < "4.0"
+gitpython==3.1.42 ; python_version >= "3.10" and python_version < "4.0"
+glfw==2.7.0 ; python_version >= "3.10" and python_version < "4.0"
+grpcio==1.62.1 ; python_version >= "3.10" and python_version < "4.0"
+gymnasium-robotics==1.2.4 ; python_version >= "3.10" and python_version < "4.0"
+gymnasium==0.29.1 ; python_version >= "3.10" and python_version < "4.0"
+h5py==3.10.0 ; python_version >= "3.10" and python_version < "4.0"
+hf-transfer==0.1.6 ; python_version >= "3.10" and python_version < "4.0"
+huggingface-hub==0.21.4 ; python_version >= "3.10" and python_version < "4.0"
+huggingface-hub[hf-transfer]==0.21.4 ; python_version >= "3.10" and python_version < "4.0"
+hydra-core==1.3.2 ; python_version >= "3.10" and python_version < "4.0"
+idna==3.6 ; python_version >= "3.10" and python_version < "4.0"
+imageio-ffmpeg==0.4.9 ; python_version >= "3.10" and python_version < "4.0"
+imageio==2.34.0 ; python_version >= "3.10" and python_version < "4.0"
+imageio[pyav]==2.34.0 ; python_version >= "3.10" and python_version < "4.0"
+importlib-metadata==7.1.0 ; python_version >= "3.10" and python_version < "4.0"
+jinja2==3.1.3 ; python_version >= "3.10" and python_version < "4.0"
+labmaze==1.0.6 ; python_version >= "3.10" and python_version < "4.0"
+lazy-loader==0.3 ; python_version >= "3.10" and python_version < "4.0"
+llvmlite==0.42.0 ; python_version >= "3.10" and python_version < "4.0"
+lxml==5.1.0 ; python_version >= "3.10" and python_version < "4.0"
+markdown==3.6 ; python_version >= "3.10" and python_version < "4.0"
+markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "4.0"
+moviepy==1.0.3 ; python_version >= "3.10" and python_version < "4.0"
+mpmath==1.3.0 ; python_version >= "3.10" and python_version < "4.0"
+mujoco==2.3.7 ; python_version >= "3.10" and python_version < "4.0"
+networkx==3.2.1 ; python_version >= "3.10" and python_version < "4.0"
+numba==0.59.1 ; python_version >= "3.10" and python_version < "4.0"
+numcodecs==0.12.1 ; python_version >= "3.10" and python_version < "4.0"
+numpy==1.26.4 ; python_version >= "3.10" and python_version < "4.0"
+nvidia-cublas-cu12==12.1.3.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-cudnn-cu12==8.9.2.26 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-cufft-cu12==11.0.2.54 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-curand-cu12==10.3.2.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-cusolver-cu12==11.4.5.107 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-cusparse-cu12==12.1.0.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-nccl-cu12==2.19.3 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-nvjitlink-cu12==12.4.99 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+nvidia-nvtx-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
+omegaconf==2.3.0 ; python_version >= "3.10" and python_version < "4.0"
+opencv-python==4.9.0.80 ; python_version >= "3.10" and python_version < "4.0"
+packaging==24.0 ; python_version >= "3.10" and python_version < "4.0"
+pandas==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
+pettingzoo==1.24.3 ; python_version >= "3.10" and python_version < "4.0"
+pillow==10.2.0 ; python_version >= "3.10" and python_version < "4.0"
+proglog==0.1.10 ; python_version >= "3.10" and python_version < "4.0"
+protobuf==4.25.3 ; python_version >= "3.10" and python_version < "4.0"
+psutil==5.9.8 ; python_version >= "3.10" and python_version < "4.0"
+pycparser==2.21 ; python_version >= "3.10" and python_version < "4.0"
+pygame==2.5.2 ; python_version >= "3.10" and python_version < "4.0"
+pymunk==6.6.0 ; python_version >= "3.10" and python_version < "4.0"
+pyopengl==3.1.7 ; python_version >= "3.10" and python_version < "4.0"
+pyparsing==3.1.2 ; python_version >= "3.10" and python_version < "4.0"
+pysocks==1.7.1 ; python_version >= "3.10" and python_version < "4.0"
+python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "4.0"
+pytz==2024.1 ; python_version >= "3.10" and python_version < "4.0"
+pyyaml==6.0.1 ; python_version >= "3.10" and python_version < "4.0"
+regex==2023.12.25 ; python_version >= "3.10" and python_version < "4.0"
+requests==2.31.0 ; python_version >= "3.10" and python_version < "4.0"
+requests[socks]==2.31.0 ; python_version >= "3.10" and python_version < "4.0"
+robomimic==0.2.0 ; python_version >= "3.10" and python_version < "4.0"
+safetensors==0.4.2 ; python_version >= "3.10" and python_version < "4.0"
+scikit-image==0.22.0 ; python_version >= "3.10" and python_version < "4.0"
+scipy==1.12.0 ; python_version >= "3.10" and python_version < "4.0"
+sentry-sdk==1.43.0 ; python_version >= "3.10" and python_version < "4.0"
+setproctitle==1.3.3 ; python_version >= "3.10" and python_version < "4.0"
+setuptools==69.2.0 ; python_version >= "3.10" and python_version < "4.0"
+shapely==2.0.3 ; python_version >= "3.10" and python_version < "4.0"
+six==1.16.0 ; python_version >= "3.10" and python_version < "4.0"
+smmap==5.0.1 ; python_version >= "3.10" and python_version < "4.0"
+soupsieve==2.5 ; python_version >= "3.10" and python_version < "4.0"
+sympy==1.12 ; python_version >= "3.10" and python_version < "4.0"
+tensorboard-data-server==0.7.2 ; python_version >= "3.10" and python_version < "4.0"
+tensorboard==2.16.2 ; python_version >= "3.10" and python_version < "4.0"
+tensorboardx==2.6.2.2 ; python_version >= "3.10" and python_version < "4.0"
+tensordict @ git+https://github.com/pytorch/tensordict@b4c91e8828c538ca0a50d8383fd99311a9afb078 ; python_version >= "3.10" and python_version < "4.0"
+termcolor==2.4.0 ; python_version >= "3.10" and python_version < "4.0"
+tifffile==2024.2.12 ; python_version >= "3.10" and python_version < "4.0"
+torch==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
+torchrl @ git+https://github.com/pytorch/rl@13bef426dcfa5887c6e5034a6e9697993fa92c37 ; python_version >= "3.10" and python_version < "4.0"
+torchvision==0.17.1 ; python_version >= "3.10" and python_version < "4.0"
+tqdm==4.66.2 ; python_version >= "3.10" and python_version < "4.0"
+triton==2.2.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version < "3.12" and python_version >= "3.10"
+typing-extensions==4.10.0 ; python_version >= "3.10" and python_version < "4.0"
+tzdata==2024.1 ; python_version >= "3.10" and python_version < "4.0"
+urllib3==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
+wandb==0.16.4 ; python_version >= "3.10" and python_version < "4.0"
+werkzeug==3.0.1 ; python_version >= "3.10" and python_version < "4.0"
+zarr==2.17.1 ; python_version >= "3.10" and python_version < "4.0"
+zipp==3.18.1 ; python_version >= "3.10" and python_version < "4.0"
From 5f4b8ab899365f8362a569e6d39c8a9e700391d7 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 16:35:32 +0100
Subject: [PATCH 05/19] Add more exhaustive install instructions
---
README.md | 43 ++++++++++++++++++++++++++++++++++++-------
1 file changed, 36 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 816a255da..9c06ae21b 100644
--- a/README.md
+++ b/README.md
@@ -21,9 +21,12 @@
+
+
State-of-the-art Machine Learning for real-world robotics
+
+
---
-**State-of-the-art machine learning for real-world robotics**
🤗 LeRobot aims to provide models, datasets, and tools for real-world robotics in PyTorch. The goal is to lower the barrier for entry to robotics so that everyone can contribute and benefit from sharing datasets and pretrained models.
@@ -57,23 +60,42 @@
## Installation
-Create a virtual environment with Python 3.10, e.g. using `conda`:
+As of now, this repository is tested on Python 3.10 and PyTorch 2.2.1.
+
+We don't have a build released yet (coming soon!), so to install 🤗 LeRobot you need to clone this repo first:
+```bash
+git clone https://github.com/scikit-build/cmake-python-distributions.git
+```
+
+You should install 🤗 LeRobot in a [virtual environment](https://docs.python.org/3/library/venv.html). If you're unfamiliar with Python virtual environments, check out the [user guide](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/).
+
+Create a virtual environment with Python 3.10 and activate it.
+
+Using [`miniconda`](https://docs.anaconda.com/free/miniconda/index.html):
```bash
conda create -y -n lerobot python=3.10
conda activate lerobot
```
-[Install `poetry`](https://python-poetry.org/docs/#installation) (if you don't have it already)
+Using [`pyenv`](https://github.com/pyenv/pyenv):
```bash
-curl -sSL https://install.python-poetry.org | python -
+pyenv install 3.10
+pyenv local 3.10
```
-Install dependencies
+Then, install 🤗 LeRobot:
+
+### With pip
+```bash
+pip install -r requirements.txt
+```
+
+### With poetry
```bash
poetry install
```
-If you encounter a disk space error, try to change your tmp dir to a location where you have enough disk space, e.g.
+**Note:** If you encounter a disk space error, try to change your `tmp/` dirrectory to a location where you have enough disk space, e.g.
```bash
mkdir ~/tmp
export TMPDIR='~/tmp'
@@ -216,8 +238,15 @@ pre-commit
```
**Add dependencies**
+Instead of using `pip` directly, we use `poetry` for development purposes to easily track our dependencies.
+If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it.
-Instead of `pip install some-package`, we use `poetry` to track the versions of our dependencies:
+Install the project with:
+```bash
+poetry install
+```
+
+Then, the equivalent of `pip install some-package`, would just be:
```bash
poetry add some-package
```
From 6710121a29f4ce11ce4ac9ad789f376b534d31cb Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 16:47:49 +0100
Subject: [PATCH 06/19] Revert "Add requirements.txt"
This reverts commit 18e7f4c3e6868c10a05860acb919c4713847dd8a.
---
requirements.txt | 119 -----------------------------------------------
1 file changed, 119 deletions(-)
delete mode 100644 requirements.txt
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index dc1748f79..000000000
--- a/requirements.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-absl-py==2.1.0 ; python_version >= "3.10" and python_version < "4.0"
-antlr4-python3-runtime==4.9.3 ; python_version >= "3.10" and python_version < "4.0"
-appdirs==1.4.4 ; python_version >= "3.10" and python_version < "4.0"
-asciitree==0.3.3 ; python_version >= "3.10" and python_version < "4.0"
-av==12.0.0 ; python_version >= "3.10" and python_version < "4.0"
-beautifulsoup4==4.12.3 ; python_version >= "3.10" and python_version < "4.0"
-certifi==2024.2.2 ; python_version >= "3.10" and python_version < "4.0"
-cffi==1.16.0 ; python_version >= "3.10" and python_version < "4.0"
-charset-normalizer==3.3.2 ; python_version >= "3.10" and python_version < "4.0"
-click==8.1.7 ; python_version >= "3.10" and python_version < "4.0"
-cloudpickle==3.0.0 ; python_version >= "3.10" and python_version < "4.0"
-cmake==3.29.0.1 ; python_version >= "3.10" and python_version < "4.0"
-colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0" and platform_system == "Windows"
-decorator==4.4.2 ; python_version >= "3.10" and python_version < "4.0"
-diffusers==0.26.3 ; python_version >= "3.10" and python_version < "4.0"
-dm-control==1.0.14 ; python_version >= "3.10" and python_version < "4.0"
-dm-env==1.6 ; python_version >= "3.10" and python_version < "4.0"
-dm-tree==0.1.8 ; python_version >= "3.10" and python_version < "4.0"
-docker-pycreds==0.4.0 ; python_version >= "3.10" and python_version < "4.0"
-egl-probe==1.0.2 ; python_version >= "3.10" and python_version < "4.0"
-einops==0.7.0 ; python_version >= "3.10" and python_version < "4.0"
-farama-notifications==0.0.4 ; python_version >= "3.10" and python_version < "4.0"
-fasteners==0.19 ; python_version >= "3.10" and python_version < "4.0" and sys_platform != "emscripten"
-filelock==3.13.1 ; python_version >= "3.10" and python_version < "4.0"
-fsspec==2024.3.1 ; python_version >= "3.10" and python_version < "4.0"
-gdown==5.1.0 ; python_version >= "3.10" and python_version < "4.0"
-gitdb==4.0.11 ; python_version >= "3.10" and python_version < "4.0"
-gitpython==3.1.42 ; python_version >= "3.10" and python_version < "4.0"
-glfw==2.7.0 ; python_version >= "3.10" and python_version < "4.0"
-grpcio==1.62.1 ; python_version >= "3.10" and python_version < "4.0"
-gymnasium-robotics==1.2.4 ; python_version >= "3.10" and python_version < "4.0"
-gymnasium==0.29.1 ; python_version >= "3.10" and python_version < "4.0"
-h5py==3.10.0 ; python_version >= "3.10" and python_version < "4.0"
-hf-transfer==0.1.6 ; python_version >= "3.10" and python_version < "4.0"
-huggingface-hub==0.21.4 ; python_version >= "3.10" and python_version < "4.0"
-huggingface-hub[hf-transfer]==0.21.4 ; python_version >= "3.10" and python_version < "4.0"
-hydra-core==1.3.2 ; python_version >= "3.10" and python_version < "4.0"
-idna==3.6 ; python_version >= "3.10" and python_version < "4.0"
-imageio-ffmpeg==0.4.9 ; python_version >= "3.10" and python_version < "4.0"
-imageio==2.34.0 ; python_version >= "3.10" and python_version < "4.0"
-imageio[pyav]==2.34.0 ; python_version >= "3.10" and python_version < "4.0"
-importlib-metadata==7.1.0 ; python_version >= "3.10" and python_version < "4.0"
-jinja2==3.1.3 ; python_version >= "3.10" and python_version < "4.0"
-labmaze==1.0.6 ; python_version >= "3.10" and python_version < "4.0"
-lazy-loader==0.3 ; python_version >= "3.10" and python_version < "4.0"
-llvmlite==0.42.0 ; python_version >= "3.10" and python_version < "4.0"
-lxml==5.1.0 ; python_version >= "3.10" and python_version < "4.0"
-markdown==3.6 ; python_version >= "3.10" and python_version < "4.0"
-markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "4.0"
-moviepy==1.0.3 ; python_version >= "3.10" and python_version < "4.0"
-mpmath==1.3.0 ; python_version >= "3.10" and python_version < "4.0"
-mujoco==2.3.7 ; python_version >= "3.10" and python_version < "4.0"
-networkx==3.2.1 ; python_version >= "3.10" and python_version < "4.0"
-numba==0.59.1 ; python_version >= "3.10" and python_version < "4.0"
-numcodecs==0.12.1 ; python_version >= "3.10" and python_version < "4.0"
-numpy==1.26.4 ; python_version >= "3.10" and python_version < "4.0"
-nvidia-cublas-cu12==12.1.3.1 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-cudnn-cu12==8.9.2.26 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-cufft-cu12==11.0.2.54 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-curand-cu12==10.3.2.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-cusolver-cu12==11.4.5.107 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-cusparse-cu12==12.1.0.106 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-nccl-cu12==2.19.3 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-nvjitlink-cu12==12.4.99 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-nvidia-nvtx-cu12==12.1.105 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version >= "3.10" and python_version < "4.0"
-omegaconf==2.3.0 ; python_version >= "3.10" and python_version < "4.0"
-opencv-python==4.9.0.80 ; python_version >= "3.10" and python_version < "4.0"
-packaging==24.0 ; python_version >= "3.10" and python_version < "4.0"
-pandas==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
-pettingzoo==1.24.3 ; python_version >= "3.10" and python_version < "4.0"
-pillow==10.2.0 ; python_version >= "3.10" and python_version < "4.0"
-proglog==0.1.10 ; python_version >= "3.10" and python_version < "4.0"
-protobuf==4.25.3 ; python_version >= "3.10" and python_version < "4.0"
-psutil==5.9.8 ; python_version >= "3.10" and python_version < "4.0"
-pycparser==2.21 ; python_version >= "3.10" and python_version < "4.0"
-pygame==2.5.2 ; python_version >= "3.10" and python_version < "4.0"
-pymunk==6.6.0 ; python_version >= "3.10" and python_version < "4.0"
-pyopengl==3.1.7 ; python_version >= "3.10" and python_version < "4.0"
-pyparsing==3.1.2 ; python_version >= "3.10" and python_version < "4.0"
-pysocks==1.7.1 ; python_version >= "3.10" and python_version < "4.0"
-python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "4.0"
-pytz==2024.1 ; python_version >= "3.10" and python_version < "4.0"
-pyyaml==6.0.1 ; python_version >= "3.10" and python_version < "4.0"
-regex==2023.12.25 ; python_version >= "3.10" and python_version < "4.0"
-requests==2.31.0 ; python_version >= "3.10" and python_version < "4.0"
-requests[socks]==2.31.0 ; python_version >= "3.10" and python_version < "4.0"
-robomimic==0.2.0 ; python_version >= "3.10" and python_version < "4.0"
-safetensors==0.4.2 ; python_version >= "3.10" and python_version < "4.0"
-scikit-image==0.22.0 ; python_version >= "3.10" and python_version < "4.0"
-scipy==1.12.0 ; python_version >= "3.10" and python_version < "4.0"
-sentry-sdk==1.43.0 ; python_version >= "3.10" and python_version < "4.0"
-setproctitle==1.3.3 ; python_version >= "3.10" and python_version < "4.0"
-setuptools==69.2.0 ; python_version >= "3.10" and python_version < "4.0"
-shapely==2.0.3 ; python_version >= "3.10" and python_version < "4.0"
-six==1.16.0 ; python_version >= "3.10" and python_version < "4.0"
-smmap==5.0.1 ; python_version >= "3.10" and python_version < "4.0"
-soupsieve==2.5 ; python_version >= "3.10" and python_version < "4.0"
-sympy==1.12 ; python_version >= "3.10" and python_version < "4.0"
-tensorboard-data-server==0.7.2 ; python_version >= "3.10" and python_version < "4.0"
-tensorboard==2.16.2 ; python_version >= "3.10" and python_version < "4.0"
-tensorboardx==2.6.2.2 ; python_version >= "3.10" and python_version < "4.0"
-tensordict @ git+https://github.com/pytorch/tensordict@b4c91e8828c538ca0a50d8383fd99311a9afb078 ; python_version >= "3.10" and python_version < "4.0"
-termcolor==2.4.0 ; python_version >= "3.10" and python_version < "4.0"
-tifffile==2024.2.12 ; python_version >= "3.10" and python_version < "4.0"
-torch==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
-torchrl @ git+https://github.com/pytorch/rl@13bef426dcfa5887c6e5034a6e9697993fa92c37 ; python_version >= "3.10" and python_version < "4.0"
-torchvision==0.17.1 ; python_version >= "3.10" and python_version < "4.0"
-tqdm==4.66.2 ; python_version >= "3.10" and python_version < "4.0"
-triton==2.2.0 ; platform_system == "Linux" and platform_machine == "x86_64" and python_version < "3.12" and python_version >= "3.10"
-typing-extensions==4.10.0 ; python_version >= "3.10" and python_version < "4.0"
-tzdata==2024.1 ; python_version >= "3.10" and python_version < "4.0"
-urllib3==2.2.1 ; python_version >= "3.10" and python_version < "4.0"
-wandb==0.16.4 ; python_version >= "3.10" and python_version < "4.0"
-werkzeug==3.0.1 ; python_version >= "3.10" and python_version < "4.0"
-zarr==2.17.1 ; python_version >= "3.10" and python_version < "4.0"
-zipp==3.18.1 ; python_version >= "3.10" and python_version < "4.0"
From 4f8f1926f917405026034d6b44c229541b4b81b2 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 16:49:27 +0100
Subject: [PATCH 07/19] Update pip install without requirements.txt
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9c06ae21b..9ecc22ff3 100644
--- a/README.md
+++ b/README.md
@@ -87,7 +87,7 @@ Then, install 🤗 LeRobot:
### With pip
```bash
-pip install -r requirements.txt
+pip install .
```
### With poetry
From de1e9187c87bab25b7f6e8a1fb3dd78900ceac07 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 16:56:21 +0100
Subject: [PATCH 08/19] Formatting
---
README.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 9ecc22ff3..5f76ffcde 100644
--- a/README.md
+++ b/README.md
@@ -224,11 +224,11 @@ hydra.run.dir=outputs/train/aloha_act
Feel free to open issues and PRs, and to coordinate your efforts with the community on our [Discord Channel](https://discord.gg/VjFz58wn3R). For specific inquiries, reach out to [Remi Cadene](remi.cadene@huggingface.co).
-**TODO**
+### TODO
If you are not sure how to contribute or want to know the next features we working on, look on this project page: [LeRobot TODO](https://github.com/orgs/huggingface/projects/46)
-**Follow our style**
+### Follow our style
```bash
# install if needed
@@ -237,7 +237,7 @@ pre-commit install
pre-commit
```
-**Add dependencies**
+### Add dependencies
Instead of using `pip` directly, we use `poetry` for development purposes to easily track our dependencies.
If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it.
@@ -262,7 +262,7 @@ cd .github/poetry/cpu
poetry add some-package
```
-**Run tests locally**
+### Run tests locally
Install [git lfs](https://git-lfs.com/) to retrieve test artifacts (if you don't have it already).
@@ -293,7 +293,7 @@ Run tests
DATA_DIR="tests/data" pytest -sx tests
```
-**Add a new dataset**
+### Add a new dataset
To add a dataset to the hub, first login and use a token generated from [huggingface settings](https://huggingface.co/settings/tokens) with write access:
```bash
@@ -354,7 +354,7 @@ Finally, you might want to mock the dataset if you need to update the unit tests
python tests/scripts/mock_dataset.py --in-data-dir data/$DATASET --out-data-dir tests/data/$DATASET
```
-**Add a pretrained policy**
+### Add a pretrained policy
Once you have trained a policy you may upload it to the HuggingFace hub.
@@ -390,7 +390,7 @@ huggingface-cli upload $HUB_ID to_upload
See `eval.py` for an example of how a user may use your policy.
-**Improve your code with profiling**
+### Improve your code with profiling
An example of a code snippet to profile the evaluation of a policy:
```python
From 032200e32cd8850c132353a586d45888f5256f38 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 17:05:04 +0100
Subject: [PATCH 09/19] Typo fix
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 5f76ffcde..fa1725fce 100644
--- a/README.md
+++ b/README.md
@@ -64,7 +64,8 @@ As of now, this repository is tested on Python 3.10 and PyTorch 2.2.1.
We don't have a build released yet (coming soon!), so to install 🤗 LeRobot you need to clone this repo first:
```bash
-git clone https://github.com/scikit-build/cmake-python-distributions.git
+git clone https://github.com/huggingface/lerobot.git
+cd lerobot
```
You should install 🤗 LeRobot in a [virtual environment](https://docs.python.org/3/library/venv.html). If you're unfamiliar with Python virtual environments, check out the [user guide](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/).
From 6f1a0aefab54a846bbdf234d9ea1a740d1acd875 Mon Sep 17 00:00:00 2001
From: Simon Alibert <75076266+aliberts@users.noreply.github.com>
Date: Wed, 27 Mar 2024 20:50:23 +0100
Subject: [PATCH 10/19] typo fix
Co-authored-by: Alexander Soare
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index fa1725fce..f1a7a9c3c 100644
--- a/README.md
+++ b/README.md
@@ -96,7 +96,7 @@ pip install .
poetry install
```
-**Note:** If you encounter a disk space error, try to change your `tmp/` dirrectory to a location where you have enough disk space, e.g.
+**Note:** If you encounter a disk space error, try to change your `tmp/` directory to a location where you have enough disk space, e.g.
```bash
mkdir ~/tmp
export TMPDIR='~/tmp'
From 1b6cb2b1bee3243840b9770189b6f4dd16fdfd8a Mon Sep 17 00:00:00 2001
From: Simon Alibert <75076266+aliberts@users.noreply.github.com>
Date: Wed, 27 Mar 2024 20:51:52 +0100
Subject: [PATCH 11/19] Add space
Co-authored-by: Remi
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index f1a7a9c3c..179f14f6b 100644
--- a/README.md
+++ b/README.md
@@ -239,6 +239,7 @@ pre-commit
```
### Add dependencies
+
Instead of using `pip` directly, we use `poetry` for development purposes to easily track our dependencies.
If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it.
From 9d9148dad835ec78ba2d9d1e786239c9011aee30 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Thu, 28 Mar 2024 10:01:33 +0100
Subject: [PATCH 12/19] Fixes for #57
---
README.md | 37 ++++++-------------------------------
1 file changed, 6 insertions(+), 31 deletions(-)
diff --git a/README.md b/README.md
index fa1725fce..3b4b4af7c 100644
--- a/README.md
+++ b/README.md
@@ -60,46 +60,21 @@
## Installation
-As of now, this repository is tested on Python 3.10 and PyTorch 2.2.1.
-
-We don't have a build released yet (coming soon!), so to install 🤗 LeRobot you need to clone this repo first:
+Download our source code:
```bash
git clone https://github.com/huggingface/lerobot.git
cd lerobot
```
-You should install 🤗 LeRobot in a [virtual environment](https://docs.python.org/3/library/venv.html). If you're unfamiliar with Python virtual environments, check out the [user guide](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/).
-
-Create a virtual environment with Python 3.10 and activate it.
-
-Using [`miniconda`](https://docs.anaconda.com/free/miniconda/index.html):
+Create a virtual environment with Python 3.10 and activate it, e.g. with [`miniconda`](https://docs.anaconda.com/free/miniconda/index.html):
```bash
conda create -y -n lerobot python=3.10
conda activate lerobot
```
-Using [`pyenv`](https://github.com/pyenv/pyenv):
-```bash
-pyenv install 3.10
-pyenv local 3.10
-```
-
Then, install 🤗 LeRobot:
-
-### With pip
```bash
-pip install .
-```
-
-### With poetry
-```bash
-poetry install
-```
-
-**Note:** If you encounter a disk space error, try to change your `tmp/` dirrectory to a location where you have enough disk space, e.g.
-```bash
-mkdir ~/tmp
-export TMPDIR='~/tmp'
+python -m pip install .
```
To use [Weights and Biases](https://docs.wandb.ai/quickstart) for experiments tracking, log in with
@@ -252,11 +227,11 @@ Then, the equivalent of `pip install some-package`, would just be:
poetry add some-package
```
-**NOTE:** Currently, to ensure the CI works properly, any new package must also be added in the CPU-only environment dedicated CI. To do this, you should create a separate environment and add the new package there as well. For example:
+**NOTE:** Currently, to ensure the CI works properly, any new package must also be added in the CPU-only environment dedicated to the CI. To do this, you should create a separate environment and add the new package there as well. For example:
```bash
-# add the new package to your main poetry env
+# Add the new package to your main poetry env
poetry add some-package
-# add the same package to the CPU-only env dedicated to CI
+# Add the same package to the CPU-only env dedicated to CI
conda create -y -n lerobot-ci python=3.10
conda activate lerobot-ci
cd .github/poetry/cpu
From 58df2066a91c145f4b1430f1cd2bec7bbdca3e7e Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Tue, 26 Mar 2024 15:25:22 +0100
Subject: [PATCH 13/19] Add pytest-cov
---
.github/poetry/cpu/poetry.lock | 87 ++++++++++++++++++++++++++++++-
.github/poetry/cpu/pyproject.toml | 1 +
poetry.lock | 87 ++++++++++++++++++++++++++++++-
pyproject.toml | 1 +
4 files changed, 174 insertions(+), 2 deletions(-)
diff --git a/.github/poetry/cpu/poetry.lock b/.github/poetry/cpu/poetry.lock
index ef4242f3b..ba820f344 100644
--- a/.github/poetry/cpu/poetry.lock
+++ b/.github/poetry/cpu/poetry.lock
@@ -367,6 +367,73 @@ files = [
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
]
+[[package]]
+name = "coverage"
+version = "7.4.4"
+description = "Code coverage measurement for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "coverage-7.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0be5efd5127542ef31f165de269f77560d6cdef525fffa446de6f7e9186cfb2"},
+ {file = "coverage-7.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ccd341521be3d1b3daeb41960ae94a5e87abe2f46f17224ba5d6f2b8398016cf"},
+ {file = "coverage-7.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fa497a8ab37784fbb20ab699c246053ac294d13fc7eb40ec007a5043ec91f8"},
+ {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1a93009cb80730c9bca5d6d4665494b725b6e8e157c1cb7f2db5b4b122ea562"},
+ {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:690db6517f09336559dc0b5f55342df62370a48f5469fabf502db2c6d1cffcd2"},
+ {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:09c3255458533cb76ef55da8cc49ffab9e33f083739c8bd4f58e79fecfe288f7"},
+ {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8ce1415194b4a6bd0cdcc3a1dfbf58b63f910dcb7330fe15bdff542c56949f87"},
+ {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b91cbc4b195444e7e258ba27ac33769c41b94967919f10037e6355e998af255c"},
+ {file = "coverage-7.4.4-cp310-cp310-win32.whl", hash = "sha256:598825b51b81c808cb6f078dcb972f96af96b078faa47af7dfcdf282835baa8d"},
+ {file = "coverage-7.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:09ef9199ed6653989ebbcaacc9b62b514bb63ea2f90256e71fea3ed74bd8ff6f"},
+ {file = "coverage-7.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f9f50e7ef2a71e2fae92774c99170eb8304e3fdf9c8c3c7ae9bab3e7229c5cf"},
+ {file = "coverage-7.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:623512f8ba53c422fcfb2ce68362c97945095b864cda94a92edbaf5994201083"},
+ {file = "coverage-7.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0513b9508b93da4e1716744ef6ebc507aff016ba115ffe8ecff744d1322a7b63"},
+ {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40209e141059b9370a2657c9b15607815359ab3ef9918f0196b6fccce8d3230f"},
+ {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a2b2b78c78293782fd3767d53e6474582f62443d0504b1554370bde86cc8227"},
+ {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:73bfb9c09951125d06ee473bed216e2c3742f530fc5acc1383883125de76d9cd"},
+ {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f384c3cc76aeedce208643697fb3e8437604b512255de6d18dae3f27655a384"},
+ {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54eb8d1bf7cacfbf2a3186019bcf01d11c666bd495ed18717162f7eb1e9dd00b"},
+ {file = "coverage-7.4.4-cp311-cp311-win32.whl", hash = "sha256:cac99918c7bba15302a2d81f0312c08054a3359eaa1929c7e4b26ebe41e9b286"},
+ {file = "coverage-7.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:b14706df8b2de49869ae03a5ccbc211f4041750cd4a66f698df89d44f4bd30ec"},
+ {file = "coverage-7.4.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:201bef2eea65e0e9c56343115ba3814e896afe6d36ffd37bab783261db430f76"},
+ {file = "coverage-7.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41c9c5f3de16b903b610d09650e5e27adbfa7f500302718c9ffd1c12cf9d6818"},
+ {file = "coverage-7.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d898fe162d26929b5960e4e138651f7427048e72c853607f2b200909794ed978"},
+ {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ea79bb50e805cd6ac058dfa3b5c8f6c040cb87fe83de10845857f5535d1db70"},
+ {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce4b94265ca988c3f8e479e741693d143026632672e3ff924f25fab50518dd51"},
+ {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00838a35b882694afda09f85e469c96367daa3f3f2b097d846a7216993d37f4c"},
+ {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fdfafb32984684eb03c2d83e1e51f64f0906b11e64482df3c5db936ce3839d48"},
+ {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:69eb372f7e2ece89f14751fbcbe470295d73ed41ecd37ca36ed2eb47512a6ab9"},
+ {file = "coverage-7.4.4-cp312-cp312-win32.whl", hash = "sha256:137eb07173141545e07403cca94ab625cc1cc6bc4c1e97b6e3846270e7e1fea0"},
+ {file = "coverage-7.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d71eec7d83298f1af3326ce0ff1d0ea83c7cb98f72b577097f9083b20bdaf05e"},
+ {file = "coverage-7.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ae728ff3b5401cc320d792866987e7e7e880e6ebd24433b70a33b643bb0384"},
+ {file = "coverage-7.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc4f1358cb0c78edef3ed237ef2c86056206bb8d9140e73b6b89fbcfcbdd40e1"},
+ {file = "coverage-7.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8130a2aa2acb8788e0b56938786c33c7c98562697bf9f4c7d6e8e5e3a0501e4a"},
+ {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf271892d13e43bc2b51e6908ec9a6a5094a4df1d8af0bfc360088ee6c684409"},
+ {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4cdc86d54b5da0df6d3d3a2f0b710949286094c3a6700c21e9015932b81447e"},
+ {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae71e7ddb7a413dd60052e90528f2f65270aad4b509563af6d03d53e979feafd"},
+ {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:38dd60d7bf242c4ed5b38e094baf6401faa114fc09e9e6632374388a404f98e7"},
+ {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa5b1c1bfc28384f1f53b69a023d789f72b2e0ab1b3787aae16992a7ca21056c"},
+ {file = "coverage-7.4.4-cp38-cp38-win32.whl", hash = "sha256:dfa8fe35a0bb90382837b238fff375de15f0dcdb9ae68ff85f7a63649c98527e"},
+ {file = "coverage-7.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2991665420a803495e0b90a79233c1433d6ed77ef282e8e152a324bbbc5e0c8"},
+ {file = "coverage-7.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b799445b9f7ee8bf299cfaed6f5b226c0037b74886a4e11515e569b36fe310d"},
+ {file = "coverage-7.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b4d33f418f46362995f1e9d4f3a35a1b6322cb959c31d88ae56b0298e1c22357"},
+ {file = "coverage-7.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aadacf9a2f407a4688d700e4ebab33a7e2e408f2ca04dbf4aef17585389eff3e"},
+ {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c95949560050d04d46b919301826525597f07b33beba6187d04fa64d47ac82e"},
+ {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff7687ca3d7028d8a5f0ebae95a6e4827c5616b31a4ee1192bdfde697db110d4"},
+ {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5fc1de20b2d4a061b3df27ab9b7c7111e9a710f10dc2b84d33a4ab25065994ec"},
+ {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c74880fc64d4958159fbd537a091d2a585448a8f8508bf248d72112723974cbd"},
+ {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:742a76a12aa45b44d236815d282b03cfb1de3b4323f3e4ec933acfae08e54ade"},
+ {file = "coverage-7.4.4-cp39-cp39-win32.whl", hash = "sha256:d89d7b2974cae412400e88f35d86af72208e1ede1a541954af5d944a8ba46c57"},
+ {file = "coverage-7.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:9ca28a302acb19b6af89e90f33ee3e1906961f94b54ea37de6737b7ca9d8827c"},
+ {file = "coverage-7.4.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:b2c5edc4ac10a7ef6605a966c58929ec6c1bd0917fb8c15cb3363f65aa40e677"},
+ {file = "coverage-7.4.4.tar.gz", hash = "sha256:c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49"},
+]
+
+[package.dependencies]
+tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""}
+
+[package.extras]
+toml = ["tomli"]
+
[[package]]
name = "debugpy"
version = "1.8.1"
@@ -2132,6 +2199,24 @@ tomli = {version = ">=1", markers = "python_version < \"3.11\""}
[package.extras]
testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
+[[package]]
+name = "pytest-cov"
+version = "5.0.0"
+description = "Pytest plugin for measuring coverage."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"},
+ {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"},
+]
+
+[package.dependencies]
+coverage = {version = ">=5.2.1", extras = ["toml"]}
+pytest = ">=4.6"
+
+[package.extras]
+testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"]
+
[[package]]
name = "python-dateutil"
version = "2.9.0.post0"
@@ -3245,4 +3330,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata]
lock-version = "2.0"
python-versions = "^3.10"
-content-hash = "183331172d7c12815adc4372eff886efa9dd6234a2d07118968ffeff51f5b299"
+content-hash = "8800bb8b24312d17b765cd2ce2799f49436171dd5fbf1bec3b07f853cfa9befd"
diff --git a/.github/poetry/cpu/pyproject.toml b/.github/poetry/cpu/pyproject.toml
index 5f5be450d..e84b93c90 100644
--- a/.github/poetry/cpu/pyproject.toml
+++ b/.github/poetry/cpu/pyproject.toml
@@ -59,6 +59,7 @@ cmake = "^3.29.0.1"
pre-commit = "^3.6.2"
debugpy = "^1.8.1"
pytest = "^8.1.0"
+pytest-cov = "^5.0.0"
[[tool.poetry.source]]
diff --git a/poetry.lock b/poetry.lock
index a1258c064..72397001d 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -367,6 +367,73 @@ files = [
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
]
+[[package]]
+name = "coverage"
+version = "7.4.4"
+description = "Code coverage measurement for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "coverage-7.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0be5efd5127542ef31f165de269f77560d6cdef525fffa446de6f7e9186cfb2"},
+ {file = "coverage-7.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ccd341521be3d1b3daeb41960ae94a5e87abe2f46f17224ba5d6f2b8398016cf"},
+ {file = "coverage-7.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fa497a8ab37784fbb20ab699c246053ac294d13fc7eb40ec007a5043ec91f8"},
+ {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1a93009cb80730c9bca5d6d4665494b725b6e8e157c1cb7f2db5b4b122ea562"},
+ {file = "coverage-7.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:690db6517f09336559dc0b5f55342df62370a48f5469fabf502db2c6d1cffcd2"},
+ {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:09c3255458533cb76ef55da8cc49ffab9e33f083739c8bd4f58e79fecfe288f7"},
+ {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8ce1415194b4a6bd0cdcc3a1dfbf58b63f910dcb7330fe15bdff542c56949f87"},
+ {file = "coverage-7.4.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b91cbc4b195444e7e258ba27ac33769c41b94967919f10037e6355e998af255c"},
+ {file = "coverage-7.4.4-cp310-cp310-win32.whl", hash = "sha256:598825b51b81c808cb6f078dcb972f96af96b078faa47af7dfcdf282835baa8d"},
+ {file = "coverage-7.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:09ef9199ed6653989ebbcaacc9b62b514bb63ea2f90256e71fea3ed74bd8ff6f"},
+ {file = "coverage-7.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f9f50e7ef2a71e2fae92774c99170eb8304e3fdf9c8c3c7ae9bab3e7229c5cf"},
+ {file = "coverage-7.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:623512f8ba53c422fcfb2ce68362c97945095b864cda94a92edbaf5994201083"},
+ {file = "coverage-7.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0513b9508b93da4e1716744ef6ebc507aff016ba115ffe8ecff744d1322a7b63"},
+ {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40209e141059b9370a2657c9b15607815359ab3ef9918f0196b6fccce8d3230f"},
+ {file = "coverage-7.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a2b2b78c78293782fd3767d53e6474582f62443d0504b1554370bde86cc8227"},
+ {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:73bfb9c09951125d06ee473bed216e2c3742f530fc5acc1383883125de76d9cd"},
+ {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f384c3cc76aeedce208643697fb3e8437604b512255de6d18dae3f27655a384"},
+ {file = "coverage-7.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54eb8d1bf7cacfbf2a3186019bcf01d11c666bd495ed18717162f7eb1e9dd00b"},
+ {file = "coverage-7.4.4-cp311-cp311-win32.whl", hash = "sha256:cac99918c7bba15302a2d81f0312c08054a3359eaa1929c7e4b26ebe41e9b286"},
+ {file = "coverage-7.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:b14706df8b2de49869ae03a5ccbc211f4041750cd4a66f698df89d44f4bd30ec"},
+ {file = "coverage-7.4.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:201bef2eea65e0e9c56343115ba3814e896afe6d36ffd37bab783261db430f76"},
+ {file = "coverage-7.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41c9c5f3de16b903b610d09650e5e27adbfa7f500302718c9ffd1c12cf9d6818"},
+ {file = "coverage-7.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d898fe162d26929b5960e4e138651f7427048e72c853607f2b200909794ed978"},
+ {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ea79bb50e805cd6ac058dfa3b5c8f6c040cb87fe83de10845857f5535d1db70"},
+ {file = "coverage-7.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce4b94265ca988c3f8e479e741693d143026632672e3ff924f25fab50518dd51"},
+ {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00838a35b882694afda09f85e469c96367daa3f3f2b097d846a7216993d37f4c"},
+ {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fdfafb32984684eb03c2d83e1e51f64f0906b11e64482df3c5db936ce3839d48"},
+ {file = "coverage-7.4.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:69eb372f7e2ece89f14751fbcbe470295d73ed41ecd37ca36ed2eb47512a6ab9"},
+ {file = "coverage-7.4.4-cp312-cp312-win32.whl", hash = "sha256:137eb07173141545e07403cca94ab625cc1cc6bc4c1e97b6e3846270e7e1fea0"},
+ {file = "coverage-7.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d71eec7d83298f1af3326ce0ff1d0ea83c7cb98f72b577097f9083b20bdaf05e"},
+ {file = "coverage-7.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d5ae728ff3b5401cc320d792866987e7e7e880e6ebd24433b70a33b643bb0384"},
+ {file = "coverage-7.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc4f1358cb0c78edef3ed237ef2c86056206bb8d9140e73b6b89fbcfcbdd40e1"},
+ {file = "coverage-7.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8130a2aa2acb8788e0b56938786c33c7c98562697bf9f4c7d6e8e5e3a0501e4a"},
+ {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf271892d13e43bc2b51e6908ec9a6a5094a4df1d8af0bfc360088ee6c684409"},
+ {file = "coverage-7.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4cdc86d54b5da0df6d3d3a2f0b710949286094c3a6700c21e9015932b81447e"},
+ {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ae71e7ddb7a413dd60052e90528f2f65270aad4b509563af6d03d53e979feafd"},
+ {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:38dd60d7bf242c4ed5b38e094baf6401faa114fc09e9e6632374388a404f98e7"},
+ {file = "coverage-7.4.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa5b1c1bfc28384f1f53b69a023d789f72b2e0ab1b3787aae16992a7ca21056c"},
+ {file = "coverage-7.4.4-cp38-cp38-win32.whl", hash = "sha256:dfa8fe35a0bb90382837b238fff375de15f0dcdb9ae68ff85f7a63649c98527e"},
+ {file = "coverage-7.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2991665420a803495e0b90a79233c1433d6ed77ef282e8e152a324bbbc5e0c8"},
+ {file = "coverage-7.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b799445b9f7ee8bf299cfaed6f5b226c0037b74886a4e11515e569b36fe310d"},
+ {file = "coverage-7.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b4d33f418f46362995f1e9d4f3a35a1b6322cb959c31d88ae56b0298e1c22357"},
+ {file = "coverage-7.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aadacf9a2f407a4688d700e4ebab33a7e2e408f2ca04dbf4aef17585389eff3e"},
+ {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c95949560050d04d46b919301826525597f07b33beba6187d04fa64d47ac82e"},
+ {file = "coverage-7.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff7687ca3d7028d8a5f0ebae95a6e4827c5616b31a4ee1192bdfde697db110d4"},
+ {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5fc1de20b2d4a061b3df27ab9b7c7111e9a710f10dc2b84d33a4ab25065994ec"},
+ {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c74880fc64d4958159fbd537a091d2a585448a8f8508bf248d72112723974cbd"},
+ {file = "coverage-7.4.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:742a76a12aa45b44d236815d282b03cfb1de3b4323f3e4ec933acfae08e54ade"},
+ {file = "coverage-7.4.4-cp39-cp39-win32.whl", hash = "sha256:d89d7b2974cae412400e88f35d86af72208e1ede1a541954af5d944a8ba46c57"},
+ {file = "coverage-7.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:9ca28a302acb19b6af89e90f33ee3e1906961f94b54ea37de6737b7ca9d8827c"},
+ {file = "coverage-7.4.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:b2c5edc4ac10a7ef6605a966c58929ec6c1bd0917fb8c15cb3363f65aa40e677"},
+ {file = "coverage-7.4.4.tar.gz", hash = "sha256:c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49"},
+]
+
+[package.dependencies]
+tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""}
+
+[package.extras]
+toml = ["tomli"]
+
[[package]]
name = "debugpy"
version = "1.8.1"
@@ -2336,6 +2403,24 @@ tomli = {version = ">=1", markers = "python_version < \"3.11\""}
[package.extras]
testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
+[[package]]
+name = "pytest-cov"
+version = "5.0.0"
+description = "Pytest plugin for measuring coverage."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"},
+ {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"},
+]
+
+[package.dependencies]
+coverage = {version = ">=5.2.1", extras = ["toml"]}
+pytest = ">=4.6"
+
+[package.extras]
+testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"]
+
[[package]]
name = "python-dateutil"
version = "2.9.0.post0"
@@ -3504,4 +3589,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata]
lock-version = "2.0"
python-versions = "^3.10"
-content-hash = "408099540ed625da8e50cfe543791d2d1b52e256bbd0c56cfda482c6c5ffff0e"
+content-hash = "174c7d42f8039eedd2c447a4e6cae5169782cbd94346b5606572a0010194ca05"
diff --git a/pyproject.toml b/pyproject.toml
index 6b4715003..972c1b611 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -58,6 +58,7 @@ cmake = "^3.29.0.1"
pre-commit = "^3.6.2"
debugpy = "^1.8.1"
pytest = "^8.1.0"
+pytest-cov = "^5.0.0"
[tool.ruff]
From 6bddcb647e1f80e2cd37b971fb903a2820018f08 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Tue, 26 Mar 2024 16:23:34 +0100
Subject: [PATCH 14/19] Add test_aloha env test
---
lerobot/common/envs/aloha/env.py | 2 +-
tests/test_envs.py | 22 ++++++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/lerobot/common/envs/aloha/env.py b/lerobot/common/envs/aloha/env.py
index 357a96ecb..8f9076505 100644
--- a/lerobot/common/envs/aloha/env.py
+++ b/lerobot/common/envs/aloha/env.py
@@ -206,7 +206,7 @@ class AlohaEnv(AbstractEnv):
if self.from_pixels:
if isinstance(self.image_size, int):
image_shape = (3, self.image_size, self.image_size)
- elif OmegaConf.is_list(self.image_size):
+ elif OmegaConf.is_list(self.image_size) or isinstance(self.image_size, list):
assert len(self.image_size) == 3 # c h w
assert self.image_size[0] == 3 # c is RGB
image_shape = tuple(self.image_size)
diff --git a/tests/test_envs.py b/tests/test_envs.py
index 2beafbdad..3c8c6157a 100644
--- a/tests/test_envs.py
+++ b/tests/test_envs.py
@@ -7,6 +7,7 @@ from lerobot.common.datasets.factory import make_offline_buffer
from lerobot.common.envs.factory import make_env
from lerobot.common.envs.pusht.env import PushtEnv
from lerobot.common.envs.simxarm.env import SimxarmEnv
+from lerobot.common.envs.aloha.env import AlohaEnv
from .utils import DEVICE, init_config
@@ -38,6 +39,27 @@ def print_spec_rollout(env):
print("data from rollout:", simple_rollout(100))
+@pytest.mark.parametrize(
+ "task,from_pixels,pixels_only",
+ [
+ ("sim_insertion", True, False),
+ ("sim_insertion", True, True),
+ ("sim_transfer_cube", True, False),
+ ("sim_transfer_cube", True, True),
+ # TODO(aliberts): Add aloha other tasks
+ ],
+)
+def test_aloha(task, from_pixels, pixels_only):
+ env = AlohaEnv(
+ task,
+ from_pixels=from_pixels,
+ pixels_only=pixels_only,
+ image_size=[3, 480, 640] if from_pixels else None,
+ )
+ # print_spec_rollout(env)
+ check_env_specs(env)
+
+
@pytest.mark.parametrize(
"task,from_pixels,pixels_only",
[
From b99ee8180a8baac77cb8928ffd289c6470d879a8 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Tue, 26 Mar 2024 17:09:10 +0100
Subject: [PATCH 15/19] Add more end-to-end tests
---
.github/workflows/test.yml | 102 ++++++++++++++++++++++++++++++++-----
1 file changed, 90 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 4788a1797..86709fc55 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,4 +1,4 @@
-name: Test
+name: Tests
on:
pull_request:
@@ -10,7 +10,7 @@ on:
- main
jobs:
- test:
+ tests:
if: |
${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'CI') }} ||
${{ github.event_name == 'push' }}
@@ -19,7 +19,6 @@ jobs:
POETRY_VERSION: 1.8.2
DATA_DIR: tests/data
MUJOCO_GL: egl
- LEROBOT_TESTS_DEVICE: cpu
steps:
#----------------------------------------------
# check-out repo and set-up python
@@ -113,31 +112,110 @@ jobs:
# run tests
#----------------------------------------------
- name: Run tests
+ env:
+ LEROBOT_TESTS_DEVICE: cpu
run: |
source .venv/bin/activate
- pytest tests
+ pytest --cov=lerobot tests
- - name: Test train pusht end-to-end
+ - name: Test train ACT on ALOHA end-to-end
run: |
source .venv/bin/activate
python lerobot/scripts/train.py \
- hydra.job.name=pusht \
+ policy=act \
+ env=aloha \
+ wandb.enable=False \
+ offline_steps=2 \
+ online_steps=0 \
+ device=cpu \
+ save_model=true \
+ save_freq=2 \
+ hydra.run.dir=tests/outputs/act/
+
+ - name: Test eval ACT on ALOHA end-to-end
+ run: |
+ source .venv/bin/activate
+ python lerobot/scripts/eval.py \
+ --config tests/outputs/act/.hydra/config.yaml \
+ eval_episodes=1 \
+ env.episode_length=8 \
+ device=cpu \
+ policy.pretrained_model_path=tests/outputs/act/models/2.pt
+
+ - name: Test eval ACT on ALOHA end-to-end (policy is None)
+ run: |
+ source .venv/bin/activate
+ python lerobot/scripts/eval.py \
+ --config lerobot/configs/default.yaml \
+ policy=act \
+ env=aloha \
+ eval_episodes=1 \
+ device=cpu
+
+ - name: Test train Diffusion on PushT end-to-end
+ run: |
+ source .venv/bin/activate
+ python lerobot/scripts/train.py \
+ policy=diffusion \
env=pusht \
wandb.enable=False \
offline_steps=2 \
online_steps=0 \
device=cpu \
save_model=true \
- save_freq=1 \
- hydra.run.dir=tests/outputs/
+ save_freq=2 \
+ hydra.run.dir=tests/outputs/diffusion/
- - name: Test eval pusht end-to-end
+ - name: Test eval Diffusion on PushT end-to-end
run: |
source .venv/bin/activate
python lerobot/scripts/eval.py \
- --config tests/outputs/.hydra/config.yaml \
- wandb.enable=False \
+ --config tests/outputs/diffusion/.hydra/config.yaml \
eval_episodes=1 \
env.episode_length=8 \
device=cpu \
- policy.pretrained_model_path=tests/outputs/models/1.pt
+ policy.pretrained_model_path=tests/outputs/diffusion/models/2.pt
+
+ - name: Test eval Diffusion on PushT end-to-end (policy is None)
+ run: |
+ source .venv/bin/activate
+ python lerobot/scripts/eval.py \
+ --config lerobot/configs/default.yaml \
+ policy=diffusion \
+ env=pusht \
+ eval_episodes=1 \
+ device=cpu
+
+ - name: Test train TDMPC on Simxarm end-to-end
+ run: |
+ source .venv/bin/activate
+ python lerobot/scripts/train.py \
+ policy=tdmpc \
+ env=simxarm \
+ wandb.enable=False \
+ offline_steps=1 \
+ online_steps=1 \
+ device=cpu \
+ save_model=true \
+ save_freq=2 \
+ hydra.run.dir=tests/outputs/tdmpc/
+
+ - name: Test eval TDMPC on Simxarm end-to-end
+ run: |
+ source .venv/bin/activate
+ python lerobot/scripts/eval.py \
+ --config tests/outputs/tdmpc/.hydra/config.yaml \
+ eval_episodes=1 \
+ env.episode_length=8 \
+ device=cpu \
+ policy.pretrained_model_path=tests/outputs/tdmpc/models/2.pt
+
+ - name: Test eval TDPMC on Simxarm end-to-end (policy is None)
+ run: |
+ source .venv/bin/activate
+ python lerobot/scripts/eval.py \
+ --config lerobot/configs/default.yaml \
+ policy=tdmpc \
+ env=simxarm \
+ eval_episodes=1 \
+ device=cpu
From 006e5feabf44c5229b705207818466633187e1bb Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Tue, 26 Mar 2024 17:23:11 +0100
Subject: [PATCH 16/19] WIP add code coverage
---
.github/workflows/test.yml | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 86709fc55..c26234abb 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -109,15 +109,25 @@ jobs:
run: poetry install --no-interaction
#----------------------------------------------
- # run tests
+ # run tests & coverage
#----------------------------------------------
- name: Run tests
env:
LEROBOT_TESTS_DEVICE: cpu
run: |
source .venv/bin/activate
- pytest --cov=lerobot tests
+ pytest --cov=./lerobot --cov-report=xml tests
+ # TODO(aliberts): Link with HF Codecov account
+ # - name: Upload coverage reports to Codecov with GitHub Action
+ # uses: codecov/codecov-action@v4
+ # with:
+ # files: ./coverage.xml
+ # verbose: true
+
+ #----------------------------------------------
+ # run end-to-end tests
+ #----------------------------------------------
- name: Test train ACT on ALOHA end-to-end
run: |
source .venv/bin/activate
From 17c2bbbeb8e86b5f5e81dc1a102e8de5595fdeef Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 00:06:32 +0100
Subject: [PATCH 17/19] remove todo
---
tests/test_envs.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/tests/test_envs.py b/tests/test_envs.py
index 3c8c6157a..a91bb707e 100644
--- a/tests/test_envs.py
+++ b/tests/test_envs.py
@@ -46,7 +46,6 @@ def print_spec_rollout(env):
("sim_insertion", True, True),
("sim_transfer_cube", True, False),
("sim_transfer_cube", True, True),
- # TODO(aliberts): Add aloha other tasks
],
)
def test_aloha(task, from_pixels, pixels_only):
From 404b8f8a7502710e0e25e371b089349a04412ede Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Wed, 27 Mar 2024 12:43:30 +0100
Subject: [PATCH 18/19] Fix end-to-end ACT train on Aloha
---
.github/workflows/test.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c26234abb..7d93d43db 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -140,6 +140,8 @@ jobs:
device=cpu \
save_model=true \
save_freq=2 \
+ horizon=20 \
+ policy.batch_size=2 \
hydra.run.dir=tests/outputs/act/
- name: Test eval ACT on ALOHA end-to-end
From a7c9b78e56a12937944d74ac3f5cc0cd3c5cd9c4 Mon Sep 17 00:00:00 2001
From: Simon Alibert
Date: Thu, 28 Mar 2024 10:55:11 +0100
Subject: [PATCH 19/19] Deactivate eval ACT on Aloha (policy is None)
---
.github/workflows/test.yml | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 7d93d43db..478be771d 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -154,15 +154,16 @@ jobs:
device=cpu \
policy.pretrained_model_path=tests/outputs/act/models/2.pt
- - name: Test eval ACT on ALOHA end-to-end (policy is None)
- run: |
- source .venv/bin/activate
- python lerobot/scripts/eval.py \
- --config lerobot/configs/default.yaml \
- policy=act \
- env=aloha \
- eval_episodes=1 \
- device=cpu
+ # TODO(aliberts): This takes ~2mn to run, needs to be improved
+ # - name: Test eval ACT on ALOHA end-to-end (policy is None)
+ # run: |
+ # source .venv/bin/activate
+ # python lerobot/scripts/eval.py \
+ # --config lerobot/configs/default.yaml \
+ # policy=act \
+ # env=aloha \
+ # eval_episodes=1 \
+ # device=cpu
- name: Test train Diffusion on PushT end-to-end
run: |