[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 = "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"}, ] 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'", "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", "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", "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] requires-poetry = ">=2.1" [tool.ruff] line-length = 110 target-version = "py310" exclude = [ "tests/data", ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", ] [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: ] 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"