Spaces:
Running
Running
# Copyright 2024 The HuggingFace Inc. team. All rights reserved. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
[project.urls] | |
homepage = "https://github.com/huggingface/lerobot" | |
issues = "https://github.com/huggingface/lerobot/issues" | |
discord = "https://discord.gg/s3KuuzsPFb" | |
[project] | |
name = "lerobot" | |
version = "0.1.0" | |
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch" | |
authors = [ | |
{ name = "Rémi Cadène", email = "[email protected]" }, | |
{ name = "Simon Alibert", email = "[email protected]" }, | |
{ name = "Alexander Soare", email = "[email protected]" }, | |
{ name = "Quentin Gallouédec", email = "[email protected]" }, | |
{ name = "Adil Zouitine", email = "[email protected]" }, | |
{ name = "Thomas Wolf", email = "[email protected]" }, | |
{ name = "Steven Palma", email = "[email protected]" }, | |
] | |
readme = "README.md" | |
license = { text = "Apache-2.0" } | |
requires-python = ">=3.10" | |
keywords = ["robotics", "deep learning", "pytorch"] | |
classifiers = [ | |
"Development Status :: 3 - Alpha", | |
"Intended Audience :: Developers", | |
"Intended Audience :: Education", | |
"Intended Audience :: Science/Research", | |
"Topic :: Software Development :: Build Tools", | |
"Topic :: Scientific/Engineering :: Artificial Intelligence", | |
"License :: OSI Approved :: Apache Software License", | |
"Programming Language :: Python :: 3.10", | |
] | |
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'", | |
"imageio[ffmpeg]>=2.34.0", | |
"jsonlines>=4.0.0", | |
"numba>=0.59.0", | |
"omegaconf>=2.3.0", | |
"opencv-python-headless>=4.9.0", | |
"packaging>=24.2", | |
"av>=12.0.5", | |
"pymunk>=6.6.0", | |
"pynput>=1.7.7", | |
"pyzmq>=26.2.1", | |
"rerun-sdk>=0.21.0", | |
"termcolor>=2.4.0", | |
"torch>=2.2.1", | |
"torchcodec>=0.2.1; sys_platform != 'win32' and (sys_platform != 'linux' or (platform_machine != 'aarch64' and platform_machine != 'arm64' and platform_machine != 'armv7l')) and (sys_platform != 'darwin' or platform_machine != 'x86_64')", | |
"torchvision>=0.21.0", | |
"wandb>=0.16.3", | |
"zarr>=2.17.0", | |
"grpcio>=1.71.0", | |
"gradio" | |
] | |
[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] | |
requires-poetry = ">=2.1" | |
[tool.ruff] | |
line-length = 110 | |
target-version = "py310" | |
exclude = ["tests/artifacts/**/*.safetensors"] | |
[tool.ruff.lint] | |
select = ["E4", "E7", "E9", "F", "I", "N", "B", "C4", "SIM"] | |
[tool.bandit] | |
exclude_dirs = [ | |
"tests", | |
"benchmarks", | |
"lerobot/common/datasets/push_dataset_to_hub", | |
"lerobot/common/datasets/v2/convert_dataset_v1_to_v2", | |
"lerobot/common/policies/pi0/conversion_scripts", | |
"lerobot/scripts/push_dataset_to_hub.py", | |
] | |
skips = ["B101", "B311", "B404", "B603"] | |
[tool.typos] | |
default.extend-ignore-re = [ | |
"(?Rm)^.*(#|//)\\s*spellchecker:disable-line$", # spellchecker:disable-line | |
"(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on", # spellchecker:<on|off> | |
] | |
default.extend-ignore-identifiers-re = [ | |
# Add individual words here to ignore them | |
"2nd", | |
"pn", | |
"ser", | |
"ein", | |
] | |
[build-system] | |
requires = ["poetry-core"] | |
build-backend = "poetry.core.masonry.api" | |