Merge remote-tracking branch 'origin/main' into user/aliberts/2025_02_10_dataset_v2.1
This commit is contained in:
commit
624eaf1175
|
@ -38,53 +38,7 @@ jobs:
|
||||||
run: python -m pip install "ruff==${{ env.RUFF_VERSION }}"
|
run: python -m pip install "ruff==${{ env.RUFF_VERSION }}"
|
||||||
|
|
||||||
- name: Ruff check
|
- name: Ruff check
|
||||||
run: ruff check
|
run: ruff check --output-format=github
|
||||||
|
|
||||||
- name: Ruff format
|
- name: Ruff format
|
||||||
run: ruff format --diff
|
run: ruff format --diff
|
||||||
|
|
||||||
|
|
||||||
poetry_check:
|
|
||||||
name: Poetry check
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- name: Install poetry
|
|
||||||
run: pipx install "poetry<2.0.0"
|
|
||||||
|
|
||||||
- name: Poetry check
|
|
||||||
run: poetry check
|
|
||||||
|
|
||||||
|
|
||||||
poetry_relax:
|
|
||||||
name: Poetry relax
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
|
|
||||||
- name: Install poetry
|
|
||||||
run: pipx install "poetry<2.0.0"
|
|
||||||
|
|
||||||
- name: Install poetry-relax
|
|
||||||
run: poetry self add poetry-relax
|
|
||||||
|
|
||||||
- name: Poetry relax
|
|
||||||
id: poetry_relax
|
|
||||||
run: |
|
|
||||||
output=$(poetry relax --check 2>&1)
|
|
||||||
if echo "$output" | grep -q "Proposing updates"; then
|
|
||||||
echo "$output"
|
|
||||||
echo ""
|
|
||||||
echo "Some dependencies have caret '^' version requirement added by poetry by default."
|
|
||||||
echo "Please replace them with '>='. You can do this by hand or use poetry-relax to do this."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "$output"
|
|
||||||
fi
|
|
||||||
|
|
|
@ -32,14 +32,11 @@ jobs:
|
||||||
files: docker/**
|
files: docker/**
|
||||||
json: "true"
|
json: "true"
|
||||||
|
|
||||||
- name: Run step if only the files listed above change
|
- name: Run step if only the files listed above change # zizmor: ignore[template-injection]
|
||||||
if: steps.changed-files.outputs.any_changed == 'true'
|
if: steps.changed-files.outputs.any_changed == 'true'
|
||||||
id: set-matrix
|
id: set-matrix
|
||||||
env:
|
|
||||||
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
run: |
|
||||||
echo "matrix=${ALL_CHANGED_FILES}" >> $GITHUB_OUTPUT
|
echo "matrix=${{ steps.changed-files.outputs.all_changed_files}}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
|
||||||
build_modified_dockerfiles:
|
build_modified_dockerfiles:
|
||||||
name: Build modified Docker images
|
name: Build modified Docker images
|
||||||
|
|
|
@ -7,7 +7,8 @@ on:
|
||||||
- "tests/**"
|
- "tests/**"
|
||||||
- "examples/**"
|
- "examples/**"
|
||||||
- ".github/**"
|
- ".github/**"
|
||||||
- "poetry.lock"
|
- "pyproject.toml"
|
||||||
|
- ".pre-commit-config.yaml"
|
||||||
- "Makefile"
|
- "Makefile"
|
||||||
- ".cache/**"
|
- ".cache/**"
|
||||||
push:
|
push:
|
||||||
|
@ -18,12 +19,16 @@ on:
|
||||||
- "tests/**"
|
- "tests/**"
|
||||||
- "examples/**"
|
- "examples/**"
|
||||||
- ".github/**"
|
- ".github/**"
|
||||||
- "poetry.lock"
|
- "pyproject.toml"
|
||||||
|
- ".pre-commit-config.yaml"
|
||||||
- "Makefile"
|
- "Makefile"
|
||||||
- ".cache/**"
|
- ".cache/**"
|
||||||
|
|
||||||
permissions: {}
|
permissions: {}
|
||||||
|
|
||||||
|
env:
|
||||||
|
UV_VERSION: "0.6.0"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pytest:
|
pytest:
|
||||||
name: Pytest
|
name: Pytest
|
||||||
|
@ -42,25 +47,19 @@ jobs:
|
||||||
sudo apt-get update && \
|
sudo apt-get update && \
|
||||||
sudo apt-get install -y libegl1-mesa-dev ffmpeg portaudio19-dev
|
sudo apt-get install -y libegl1-mesa-dev ffmpeg portaudio19-dev
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install uv and python
|
||||||
run: |
|
uses: astral-sh/setup-uv@v5
|
||||||
pipx install poetry && poetry config virtualenvs.in-project true
|
|
||||||
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
# TODO(rcadene, aliberts): python 3.12 seems to be used in the tests, not python 3.10
|
|
||||||
- name: Set up Python 3.10
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: ${{ env.UV_VERSION }}
|
||||||
python-version: "3.10"
|
python-version: "3.10"
|
||||||
cache: "poetry"
|
|
||||||
|
|
||||||
- name: Install poetry dependencies
|
- name: Install lerobot (all extras)
|
||||||
run: |
|
run: uv sync --all-extras
|
||||||
poetry install --all-extras
|
|
||||||
|
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
run: |
|
run: |
|
||||||
pytest tests -v --cov=./lerobot --durations=0 \
|
uv run pytest tests -v --cov=./lerobot --durations=0 \
|
||||||
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
||||||
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
||||||
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
||||||
|
@ -80,24 +79,19 @@ jobs:
|
||||||
- name: Install apt dependencies
|
- name: Install apt dependencies
|
||||||
run: sudo apt-get update && sudo apt-get install -y ffmpeg
|
run: sudo apt-get update && sudo apt-get install -y ffmpeg
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install uv and python
|
||||||
run: |
|
uses: astral-sh/setup-uv@v5
|
||||||
pipx install poetry && poetry config virtualenvs.in-project true
|
|
||||||
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
# TODO(rcadene, aliberts): python 3.12 seems to be used in the tests, not python 3.10
|
|
||||||
- name: Set up Python 3.10
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: ${{ env.UV_VERSION }}
|
||||||
python-version: "3.10"
|
python-version: "3.10"
|
||||||
|
|
||||||
- name: Install poetry dependencies
|
- name: Install lerobot
|
||||||
run: |
|
run: uv sync --extra "test"
|
||||||
poetry install --extras "test"
|
|
||||||
|
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
run: |
|
run: |
|
||||||
pytest tests -v --cov=./lerobot --durations=0 \
|
uv run pytest tests -v --cov=./lerobot --durations=0 \
|
||||||
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
-W ignore::DeprecationWarning:imageio_ffmpeg._utils:7 \
|
||||||
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
-W ignore::UserWarning:torch.utils.data.dataloader:558 \
|
||||||
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
|
||||||
|
@ -120,20 +114,21 @@ jobs:
|
||||||
sudo apt-get update && \
|
sudo apt-get update && \
|
||||||
sudo apt-get install -y libegl1-mesa-dev portaudio19-dev
|
sudo apt-get install -y libegl1-mesa-dev portaudio19-dev
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install uv and python
|
||||||
run: |
|
uses: astral-sh/setup-uv@v5
|
||||||
pipx install poetry && poetry config virtualenvs.in-project true
|
|
||||||
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
- name: Set up Python 3.10
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
version: ${{ env.UV_VERSION }}
|
||||||
python-version: "3.10"
|
python-version: "3.10"
|
||||||
cache: "poetry"
|
|
||||||
|
|
||||||
- name: Install poetry dependencies
|
- name: Install lerobot (all extras)
|
||||||
run: |
|
run: |
|
||||||
poetry install --all-extras
|
uv venv
|
||||||
|
uv sync --all-extras
|
||||||
|
|
||||||
|
- name: venv
|
||||||
|
run: |
|
||||||
|
echo "PYTHON_PATH=${{ github.workspace }}/.venv/bin/python" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Test end-to-end
|
- name: Test end-to-end
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -49,6 +49,10 @@ share/python-wheels/
|
||||||
*.egg
|
*.egg
|
||||||
MANIFEST
|
MANIFEST
|
||||||
|
|
||||||
|
# uv/poetry lock files
|
||||||
|
poetry.lock
|
||||||
|
uv.lock
|
||||||
|
|
||||||
# PyInstaller
|
# PyInstaller
|
||||||
# Usually these files are written by a python script from a template
|
# Usually these files are written by a python script from a template
|
||||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
|
|
@ -23,14 +23,6 @@ repos:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: [--fix]
|
args: [--fix]
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
- repo: https://github.com/python-poetry/poetry
|
|
||||||
rev: 1.8.5
|
|
||||||
hooks:
|
|
||||||
- id: poetry-check
|
|
||||||
- id: poetry-lock
|
|
||||||
args:
|
|
||||||
- "--check"
|
|
||||||
- "--no-update"
|
|
||||||
- repo: https://github.com/gitleaks/gitleaks
|
- repo: https://github.com/gitleaks/gitleaks
|
||||||
rev: v8.23.3
|
rev: v8.23.3
|
||||||
hooks:
|
hooks:
|
||||||
|
|
|
@ -129,38 +129,71 @@ Follow these steps to start contributing:
|
||||||
|
|
||||||
🚨 **Do not** work on the `main` branch.
|
🚨 **Do not** work on the `main` branch.
|
||||||
|
|
||||||
4. for development, we use `poetry` instead of just `pip` to easily track our dependencies.
|
4. for development, we advise to use a tool like `poetry` or `uv` instead of just `pip` to easily track our dependencies.
|
||||||
If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it.
|
Follow the instructions to [install poetry](https://python-poetry.org/docs/#installation) (use a version >=2.1.0) or to [install uv](https://docs.astral.sh/uv/getting-started/installation/#installation-methods) if you don't have one of them already.
|
||||||
|
|
||||||
Set up a development environment with conda or miniconda:
|
Set up a development environment with conda or miniconda:
|
||||||
```bash
|
```bash
|
||||||
conda create -y -n lerobot-dev python=3.10 && conda activate lerobot-dev
|
conda create -y -n lerobot-dev python=3.10 && conda activate lerobot-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
To develop on 🤗 LeRobot, you will at least need to install the `dev` and `test` extras dependencies along with the core library:
|
If you're using `uv`, it can manage python versions so you can instead do:
|
||||||
```bash
|
```bash
|
||||||
poetry install --sync --extras "dev test"
|
uv venv --python 3.10 && source .venv/bin/activate
|
||||||
|
```
|
||||||
|
|
||||||
|
To develop on 🤗 LeRobot, you will at least need to install the `dev` and `test` extras dependencies along with the core library:
|
||||||
|
|
||||||
|
using `poetry`
|
||||||
|
```bash
|
||||||
|
poetry sync --extras "dev test"
|
||||||
|
```
|
||||||
|
|
||||||
|
using `uv`
|
||||||
|
```bash
|
||||||
|
uv sync --extra dev --extra test
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also install the project with all its dependencies (including environments):
|
You can also install the project with all its dependencies (including environments):
|
||||||
|
|
||||||
|
using `poetry`
|
||||||
```bash
|
```bash
|
||||||
poetry install --sync --all-extras
|
poetry sync --all-extras
|
||||||
|
```
|
||||||
|
|
||||||
|
using `uv`
|
||||||
|
```bash
|
||||||
|
uv sync --all-extras
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note:** If you don't install simulation environments with `--all-extras`, the tests that require them will be skipped when running the pytest suite locally. However, they *will* be tested in the CI. In general, we advise you to install everything and test locally before pushing.
|
> **Note:** If you don't install simulation environments with `--all-extras`, the tests that require them will be skipped when running the pytest suite locally. However, they *will* be tested in the CI. In general, we advise you to install everything and test locally before pushing.
|
||||||
|
|
||||||
Whichever command you chose to install the project (e.g. `poetry install --sync --all-extras`), you should run it again when pulling code with an updated version of `pyproject.toml` and `poetry.lock` in order to synchronize your virtual environment with the new dependencies.
|
Whichever command you chose to install the project (e.g. `poetry sync --all-extras`), you should run it again when pulling code with an updated version of `pyproject.toml` and `poetry.lock` in order to synchronize your virtual environment with the new dependencies.
|
||||||
|
|
||||||
The equivalent of `pip install some-package`, would just be:
|
The equivalent of `pip install some-package`, would just be:
|
||||||
|
|
||||||
|
using `poetry`
|
||||||
```bash
|
```bash
|
||||||
poetry add some-package
|
poetry add some-package
|
||||||
```
|
```
|
||||||
|
|
||||||
When making changes to the poetry sections of the `pyproject.toml`, you should run the following command to lock dependencies.
|
using `uv`
|
||||||
```bash
|
```bash
|
||||||
poetry lock --no-update
|
uv add some-package
|
||||||
```
|
```
|
||||||
|
|
||||||
|
When making changes to the poetry sections of the `pyproject.toml`, you should run the following command to lock dependencies.
|
||||||
|
using `poetry`
|
||||||
|
```bash
|
||||||
|
poetry lock
|
||||||
|
```
|
||||||
|
|
||||||
|
using `uv`
|
||||||
|
```bash
|
||||||
|
uv lock
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
5. Develop the features on your branch.
|
5. Develop the features on your branch.
|
||||||
|
|
||||||
As you work on the features, you should make sure that the test suite
|
As you work on the features, you should make sure that the test suite
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
PYTHON_PATH := $(shell which python)
|
PYTHON_PATH := $(shell which python)
|
||||||
|
|
||||||
# If Poetry is installed, redefine PYTHON_PATH to use the Poetry-managed Python
|
# If uv is installed and a virtual environment exists, use it
|
||||||
POETRY_CHECK := $(shell command -v poetry)
|
UV_CHECK := $(shell command -v uv)
|
||||||
ifneq ($(POETRY_CHECK),)
|
ifneq ($(UV_CHECK),)
|
||||||
PYTHON_PATH := $(shell poetry run which python)
|
PYTHON_PATH := $(shell .venv/bin/python)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
export PATH := $(dir $(PYTHON_PATH)):$(PATH)
|
export PATH := $(dir $(PYTHON_PATH)):$(PATH)
|
||||||
|
|
|
@ -58,7 +58,7 @@ RUN (type -p wget >/dev/null || (apt update && apt-get install wget -y)) \
|
||||||
RUN ln -s /usr/bin/python3 /usr/bin/python
|
RUN ln -s /usr/bin/python3 /usr/bin/python
|
||||||
|
|
||||||
# Install poetry
|
# Install poetry
|
||||||
RUN curl -sSL https://install.python-poetry.org | python - --version 1.8.5
|
RUN curl -sSL https://install.python-poetry.org | python -
|
||||||
ENV PATH="/root/.local/bin:$PATH"
|
ENV PATH="/root/.local/bin:$PATH"
|
||||||
RUN echo 'if [ "$HOME" != "/root" ]; then ln -sf /root/.local/bin/poetry $HOME/.local/bin/poetry; fi' >> /root/.bashrc
|
RUN echo 'if [ "$HOME" != "/root" ]; then ln -sf /root/.local/bin/poetry $HOME/.local/bin/poetry; fi' >> /root/.bashrc
|
||||||
RUN poetry config virtualenvs.create false
|
RUN poetry config virtualenvs.create false
|
||||||
|
|
|
@ -36,9 +36,14 @@ Using `pip`:
|
||||||
pip install -e ".[dynamixel]"
|
pip install -e ".[dynamixel]"
|
||||||
```
|
```
|
||||||
|
|
||||||
Or using `poetry`:
|
Using `poetry`:
|
||||||
```bash
|
```bash
|
||||||
poetry install --sync --extras "dynamixel"
|
poetry sync --extras "dynamixel"
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `uv`:
|
||||||
|
```bash
|
||||||
|
uv sync --extra "dynamixel"
|
||||||
```
|
```
|
||||||
|
|
||||||
/!\ For Linux only, ffmpeg and opencv requires conda install for now. Run this exact sequence of commands:
|
/!\ For Linux only, ffmpeg and opencv requires conda install for now. Run this exact sequence of commands:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
134
pyproject.toml
134
pyproject.toml
|
@ -1,18 +1,24 @@
|
||||||
[tool.poetry]
|
[project.urls]
|
||||||
|
homepage = "https://github.com/huggingface/lerobot"
|
||||||
|
issues = "https://github.com/huggingface/lerobot/issues"
|
||||||
|
discord = "https://discord.gg/s3KuuzsPFb"
|
||||||
|
|
||||||
|
[project]
|
||||||
name = "lerobot"
|
name = "lerobot"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch"
|
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch"
|
||||||
authors = [
|
authors = [
|
||||||
"Rémi Cadène <re.cadene@gmail.com>",
|
{name = "Rémi Cadène", email = "re.cadene@gmail.com"},
|
||||||
"Simon Alibert <alibert.sim@gmail.com>",
|
{name = "Simon Alibert", email = "alibert.sim@gmail.com"},
|
||||||
"Alexander Soare <alexander.soare159@gmail.com>",
|
{name = "Alexander Soare", email = "alexander.soare159@gmail.com"},
|
||||||
"Quentin Gallouédec <quentin.gallouedec@ec-lyon.fr>",
|
{name = "Quentin Gallouédec", email = "quentin.gallouedec@ec-lyon.fr"},
|
||||||
"Adil Zouitine <adilzouitinegm@gmail.com>",
|
{name = "Adil Zouitine", email = "adilzouitinegm@gmail.com"},
|
||||||
"Thomas Wolf <thomaswolfcontact@gmail.com>",
|
{name = "Thomas Wolf", email = "thomaswolfcontact@gmail.com"},
|
||||||
]
|
]
|
||||||
repository = "https://github.com/huggingface/lerobot"
|
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "Apache-2.0"
|
license = {text = "Apache-2.0"}
|
||||||
|
requires-python = ">=3.10"
|
||||||
|
keywords = ["robotics", "deep learning", "pytorch"]
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"Development Status :: 3 - Alpha",
|
"Development Status :: 3 - Alpha",
|
||||||
"Intended Audience :: Developers",
|
"Intended Audience :: Developers",
|
||||||
|
@ -23,70 +29,56 @@ classifiers=[
|
||||||
"License :: OSI Approved :: Apache Software License",
|
"License :: OSI Approved :: Apache Software License",
|
||||||
"Programming Language :: Python :: 3.10",
|
"Programming Language :: Python :: 3.10",
|
||||||
]
|
]
|
||||||
packages = [{include = "lerobot"}]
|
dependencies = [
|
||||||
|
"cmake>=3.29.0.1",
|
||||||
|
"datasets>=2.19.0",
|
||||||
|
"deepdiff>=7.0.1",
|
||||||
|
"diffusers>=0.27.2",
|
||||||
|
"draccus>=0.10.0",
|
||||||
|
"einops>=0.8.0",
|
||||||
|
"flask>=3.0.3",
|
||||||
|
"gdown>=5.1.0",
|
||||||
|
"gymnasium==0.29.1", # TODO(rcadene, aliberts): Make gym 1.0.0 work
|
||||||
|
"h5py>=3.10.0",
|
||||||
|
"huggingface-hub[hf-transfer,cli]>=0.27.1 ; python_version < '4.0'",
|
||||||
|
"hydra-core>=1.3.2",
|
||||||
|
"imageio[ffmpeg]>=2.34.0",
|
||||||
|
"jsonlines>=4.0.0",
|
||||||
|
"numba>=0.59.0",
|
||||||
|
"omegaconf>=2.3.0",
|
||||||
|
"opencv-python>=4.9.0",
|
||||||
|
"pyav>=12.0.5",
|
||||||
|
"pymunk>=6.6.0",
|
||||||
|
"rerun-sdk>=0.21.0",
|
||||||
|
"termcolor>=2.4.0",
|
||||||
|
"torch>=2.2.1",
|
||||||
|
"torchvision>=0.21.0",
|
||||||
|
"wandb>=0.16.3",
|
||||||
|
"zarr>=2.17.0"
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.optional-dependencies]
|
||||||
|
aloha = ["gym-aloha>=0.1.1 ; python_version < '4.0'"]
|
||||||
|
dev = ["pre-commit>=3.7.0", "debugpy>=1.8.1"]
|
||||||
|
dora = ["gym-dora @ git+https://github.com/dora-rs/dora-lerobot.git#subdirectory=gym_dora ; python_version < '4.0'"]
|
||||||
|
dynamixel = ["dynamixel-sdk>=3.7.31", "pynput>=1.7.7"]
|
||||||
|
feetech = ["feetech-servo-sdk>=1.0.0", "pynput>=1.7.7"]
|
||||||
|
intelrealsense = ["pyrealsense2>=2.55.1.6486 ; sys_platform != 'darwin'"]
|
||||||
|
pi0 = ["transformers>=4.48.0"]
|
||||||
|
pusht = ["gym-pusht>=0.1.5 ; python_version < '4.0'"]
|
||||||
|
stretch = [
|
||||||
|
"hello-robot-stretch-body>=0.7.27 ; python_version < '4.0' and sys_platform == 'linux'",
|
||||||
|
"pyrender @ git+https://github.com/mmatl/pyrender.git ; sys_platform == 'linux'",
|
||||||
|
"pyrealsense2>=2.55.1.6486 ; sys_platform != 'darwin'",
|
||||||
|
"pynput>=1.7.7"
|
||||||
|
]
|
||||||
|
test = ["pytest>=8.1.0", "pytest-cov>=5.0.0", "pyserial>=3.5"]
|
||||||
|
umi = ["imagecodecs>=2024.1.1"]
|
||||||
|
video_benchmark = ["scikit-image>=0.23.2", "pandas>=2.2.2"]
|
||||||
|
xarm = ["gym-xarm>=0.1.1 ; python_version < '4.0'"]
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry]
|
||||||
python = ">=3.10,<3.13"
|
requires-poetry = ">=2.1"
|
||||||
termcolor = ">=2.4.0"
|
|
||||||
wandb = ">=0.16.3"
|
|
||||||
imageio = {extras = ["ffmpeg"], version = ">=2.34.0"}
|
|
||||||
gdown = ">=5.1.0"
|
|
||||||
einops = ">=0.8.0"
|
|
||||||
pymunk = ">=6.6.0"
|
|
||||||
zarr = ">=2.17.0"
|
|
||||||
numba = ">=0.59.0"
|
|
||||||
torch = ">=2.2.1"
|
|
||||||
opencv-python = ">=4.9.0"
|
|
||||||
diffusers = ">=0.27.2"
|
|
||||||
torchvision = ">=0.21.0"
|
|
||||||
h5py = ">=3.10.0"
|
|
||||||
huggingface-hub = {extras = ["hf-transfer", "cli"], version = ">=0.27.1"}
|
|
||||||
gymnasium = "==0.29.1" # TODO(rcadene, aliberts): Make gym 1.0.0 work
|
|
||||||
cmake = ">=3.29.0.1"
|
|
||||||
gym-dora = { git = "https://github.com/dora-rs/dora-lerobot.git", subdirectory = "gym_dora", optional = true }
|
|
||||||
gym-pusht = { version = ">=0.1.5", optional = true}
|
|
||||||
gym-xarm = { version = ">=0.1.1", optional = true}
|
|
||||||
gym-aloha = { version = ">=0.1.1", optional = true}
|
|
||||||
pre-commit = {version = ">=3.7.0", optional = true}
|
|
||||||
debugpy = {version = ">=1.8.1", optional = true}
|
|
||||||
pytest = {version = ">=8.1.0", optional = true}
|
|
||||||
pytest-cov = {version = ">=5.0.0", optional = true}
|
|
||||||
datasets = ">=2.19.0"
|
|
||||||
imagecodecs = { version = ">=2024.1.1", optional = true }
|
|
||||||
pyav = ">=12.0.5"
|
|
||||||
rerun-sdk = ">=0.21.0"
|
|
||||||
deepdiff = ">=7.0.1"
|
|
||||||
flask = ">=3.0.3"
|
|
||||||
pandas = {version = ">=2.2.2", optional = true}
|
|
||||||
scikit-image = {version = ">=0.23.2", optional = true}
|
|
||||||
dynamixel-sdk = {version = ">=3.7.31", optional = true}
|
|
||||||
pynput = {version = ">=1.7.7", optional = true}
|
|
||||||
feetech-servo-sdk = {version = ">=1.0.0", optional = true}
|
|
||||||
setuptools = {version = "!=71.0.1", optional = true} # TODO(rcadene, aliberts): 71.0.1 has a bug
|
|
||||||
pyrealsense2 = {version = ">=2.55.1.6486", markers = "sys_platform != 'darwin'", optional = true} # TODO(rcadene, aliberts): Fix on Mac
|
|
||||||
pyrender = {git = "https://github.com/mmatl/pyrender.git", markers = "sys_platform == 'linux'", optional = true}
|
|
||||||
hello-robot-stretch-body = {version = ">=0.7.27", markers = "sys_platform == 'linux'", optional = true}
|
|
||||||
pyserial = {version = ">=3.5", optional = true}
|
|
||||||
jsonlines = ">=4.0.0"
|
|
||||||
transformers = {version = ">=4.48.0", optional = true}
|
|
||||||
draccus = ">=0.10.0"
|
|
||||||
|
|
||||||
|
|
||||||
[tool.poetry.extras]
|
|
||||||
dora = ["gym-dora"]
|
|
||||||
pusht = ["gym-pusht"]
|
|
||||||
xarm = ["gym-xarm"]
|
|
||||||
aloha = ["gym-aloha"]
|
|
||||||
dev = ["pre-commit", "debugpy"]
|
|
||||||
test = ["pytest", "pytest-cov", "pyserial"]
|
|
||||||
umi = ["imagecodecs"]
|
|
||||||
video_benchmark = ["scikit-image", "pandas"]
|
|
||||||
dynamixel = ["dynamixel-sdk", "pynput"]
|
|
||||||
feetech = ["feetech-servo-sdk", "pynput"]
|
|
||||||
intelrealsense = ["pyrealsense2"]
|
|
||||||
stretch = ["hello-robot-stretch-body", "pyrender", "pyrealsense2", "pynput"]
|
|
||||||
pi0 = ["transformers"]
|
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
line-length = 110
|
line-length = 110
|
||||||
|
|
Loading…
Reference in New Issue