2025-03-06 00:56:51 +08:00
# 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.
2025-02-16 21:28:03 +08:00
[ project . urls ]
homepage = "https://github.com/huggingface/lerobot"
issues = "https://github.com/huggingface/lerobot/issues"
discord = "https://discord.gg/s3KuuzsPFb"
[ project ]
2024-02-29 02:11:29 +08:00
name = "lerobot"
version = "0.1.0"
2024-04-16 18:09:56 +08:00
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch"
2024-02-29 02:11:29 +08:00
authors = [
2025-03-06 00:56:51 +08:00
{ name = "Rémi Cadène" , email = "re.cadene@gmail.com" } ,
{ name = "Simon Alibert" , email = "alibert.sim@gmail.com" } ,
{ name = "Alexander Soare" , email = "alexander.soare159@gmail.com" } ,
{ name = "Quentin Gallouédec" , email = "quentin.gallouedec@ec-lyon.fr" } ,
{ name = "Adil Zouitine" , email = "adilzouitinegm@gmail.com" } ,
{ name = "Thomas Wolf" , email = "thomaswolfcontact@gmail.com" } ,
{ name = "Steven Palma" , email = "imstevenpmwork@ieee.org" } ,
2024-02-29 02:11:29 +08:00
]
readme = "README.md"
2025-03-06 00:56:51 +08:00
license = { text = "Apache-2.0" }
2025-02-16 21:28:03 +08:00
requires-python = ">=3.10"
keywords = [ "robotics" , "deep learning" , "pytorch" ]
2025-03-06 00:56:51 +08:00
classifiers = [
2024-02-29 02:11:29 +08:00
"Development Status :: 3 - Alpha" ,
"Intended Audience :: Developers" ,
2024-04-16 18:09:56 +08:00
"Intended Audience :: Education" ,
"Intended Audience :: Science/Research" ,
2024-02-29 02:11:29 +08:00
"Topic :: Software Development :: Build Tools" ,
2024-04-16 18:09:56 +08:00
"Topic :: Scientific/Engineering :: Artificial Intelligence" ,
"License :: OSI Approved :: Apache Software License" ,
2024-03-05 23:03:03 +08:00
"Programming Language :: Python :: 3.10" ,
2024-02-29 02:11:29 +08:00
]
2025-02-16 21:28:03 +08:00
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" ,
2025-03-06 00:56:51 +08:00
"gymnasium==0.29.1" , # TODO(rcadene, aliberts): Make gym 1.0.0 work
2025-02-16 21:28:03 +08:00
"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>=4.9.0" ,
2025-02-25 22:27:29 +08:00
"packaging>=24.2" ,
2025-03-25 06:40:22 +08:00
"av>=12.0.5,<13.0.0" ,
2025-02-16 21:28:03 +08:00
"pymunk>=6.6.0" ,
2025-02-25 16:06:50 +08:00
"pynput>=1.7.7" ,
"pyzmq>=26.2.1" ,
2025-02-16 21:28:03 +08:00
"rerun-sdk>=0.21.0" ,
"termcolor>=2.4.0" ,
"torch>=2.2.1" ,
2025-03-19 05:04:21 +08:00
"torchcodec>=0.2.1; sys_platform != 'win32' and (sys_platform != 'linux' or (platform_machine != 'aarch64' and platform_machine != 'arm64' and platform_machine != 'armv7l'))" ,
2025-02-16 21:28:03 +08:00
"torchvision>=0.21.0" ,
"wandb>=0.16.3" ,
2025-02-25 16:06:50 +08:00
"zarr>=2.17.0" ,
2025-02-16 21:28:03 +08:00
]
2024-04-23 20:13:25 +08:00
2025-02-16 21:28:03 +08:00
[ project . optional-dependencies ]
aloha = [ "gym-aloha>=0.1.1 ; python_version < '4.0'" ]
dev = [ "pre-commit>=3.7.0" , "debugpy>=1.8.1" ]
2025-03-06 00:56:51 +08:00
dora = [
"gym-dora @ git+https://github.com/dora-rs/dora-lerobot.git#subdirectory=gym_dora ; python_version < '4.0'" ,
]
2025-02-16 21:28:03 +08:00
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'" ,
2025-03-06 00:56:51 +08:00
"pynput>=1.7.7" ,
2025-02-16 21:28:03 +08:00
]
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'" ]
2024-02-29 02:11:29 +08:00
2025-02-16 21:28:03 +08:00
[ tool . poetry ]
requires-poetry = ">=2.1"
2024-02-29 02:11:29 +08:00
2024-02-29 19:26:35 +08:00
[ tool . ruff ]
line-length = 110
target-version = "py310"
2025-03-13 21:05:55 +08:00
exclude = [ "tests/artifacts/**/*.safetensors" ]
2024-02-29 19:26:35 +08:00
[ tool . ruff . lint ]
select = [ "E4" , "E7" , "E9" , "F" , "I" , "N" , "B" , "C4" , "SIM" ]
2024-03-11 19:10:46 +08:00
2025-03-02 02:19:26 +08:00
[ 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" ]
2024-03-11 19:10:46 +08:00
2025-02-26 06:51:15 +08:00
[ tool . typos ]
default . extend-ignore-re = [
2025-03-06 00:56:51 +08:00
"(?Rm)^.*(#|//)\\s*spellchecker:disable-line$" , # spellchecker:disable-line
"(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on" , # spellchecker:<on|off>
2025-02-26 06:51:15 +08:00
]
default . extend-ignore-identifiers-re = [
# Add individual words here to ignore them
"2nd" ,
"pn" ,
"ser" ,
"ein" ,
]
2024-03-11 19:10:46 +08:00
[ build-system ]
2024-05-09 01:23:10 +08:00
requires = [ "poetry-core" ]
2024-04-16 18:09:56 +08:00
build-backend = "poetry.core.masonry.api"