* initial commit * change device in test * do detailed import * adhere to python 3.11 syntax * fix autodocstring * additionally * do same in other files * add model. prefix to all keys in state dict * use dummy stats * add pi05 * also shorten action_steps * fix test * all test pass! and fix tokenizer max length between 05 and 0 * remove test * fix transformer dependency * fix test * split pi0 and pi05 policy in seperate files * fix test * fix push to hub test * add some comments, license and readme * remove warning in config * add pi05 to factory * remove check * rename action_horizon to chunk_size * clean up padding of state and action (more in line with lerobot pi0) * add openpi image transforms for training and add more flexibility to _preprocess_images similar to lerobot pi0 * fix key match from pytorch state dict (similar keys to openpi implementation now) * also for pi05 * update to python 3.11 * revert to openpi transformer replace python 3.11 * fix(modeling pi0): nit warning message * use safeauto_docstring * fix: remove unused param * fix from pretrained * add preprocess tests * also compile forward method * Do not add model prefix to normalization * use same name for action and state dim as lerobot pi0 and remove fixed image keys * load from pretrained_path * temp: hardcode base model * fix override self.pretrained_path = None overwrite * rename to loss * remove additional image augmentations, lerobot dataset already does this * Add docs * put tests in test folder * Add test to instatiate all base models * go back to python 3.10 * update docs * adapt docs pi05 * change docs: finetune base model options * minor docs fixes and dependencies * remove todo * cast float64 to float32 for mps * skip if no transformers * fix tests * add new models to modelcard * add back init * fix circular input * feat: only run pi test on GPU * remove require_nightly_gpu * replace decorator test_pi0_openpi * rename action_dim, state_dim to max_action_dim, max_state_dim * fix doc and constants * cleanup tests * fix from pretrained * fix tests * add comment pi0 pi05 tests, add image features to pi0 pi05 hub tests * fix, state is included in language not in flow head * Move test to specific folder * and paligemma task with newline * remove add_special_tokens, not needed * feedback pr * Remove previous pi0 and rename pi0_openpi and pi05_openpi * Add Quantile stats to LeRobotDataset (#1985) * - Add RunningQuantileStats class for efficient histogram-based quantile computation - Integrate quantile parameters (compute_quantiles, quantiles) into LeRobotDataset - Support quantile computation during episode collection and aggregation - Add comprehensive function-based test suite (24 tests) for quantile functionality - Maintain full backward compatibility with existing stats computation - Enable configurable quantiles (default: [0.01, 0.99]) for robust normalization * style fixes, make quantiles computation by default to new datasets * fix tests * - Added DEFAULT_QUANTILES=[0.01, 0.10, 0.50, 0.90, 0.99] to be computed for each features instead of being chosen by the user - Fortified tests. * - add helper functions to reshape stats - add missing test for quantiles * - Add QUANTILE normalization mode to normalize the data with the 1st and 99th percentiles. - Add QUANTILE10 normalization mode to normalize the data with the 10th and 90th percentiles. * style fixes * Added missing lisence * Simplify compute_stats * - added script `augment_dataset_quantile_stats.py` so that we can add quantile stats to existing v3 datasets that dont have quatniles - modified quantile computation instead of using the edge for the value, interpolate the values in the bin * rename pi0/pi05 files * Remove open pi patch and use custom transformer branch for now * renaming * fix * Revert "fix" This reverts commit 1ea65730ac2cbca6e5869df734fbd4392561b3c6. * fix naming * feet(pi0/pi0.5): add pipeline (#2009) * feat(processor): convert openpi model with processor * TODO: Make test works * fix(modeling_pi0openpi): update attention mask value and time scaling; improve task handling in tests - Changed the attention mask value from `self.config.attention_mask_value` to a fixed value of `-2.3819763e38`. - Updated time scaling in the `sample_noise` method to use a constant factor of `0.999` and an offset of `0.001`. - Enhanced task handling in tests to ensure proper formatting and batch size consistency. - Cleaned up commented-out test code for clarity. * refactor(pi0): rename PI0OpenPIConfig and PI0OpenPIPolicy to PI0Config and PI0Policy - Updated imports and references throughout the codebase to reflect the new naming convention. - Introduced a new processor file for PI0 to handle pre-processing and post-processing steps. - Adjusted tests to utilize the renamed classes, ensuring consistency and functionality. - Enhanced clarity and maintainability by removing outdated naming conventions. * refactor(pi05): rename PI0OpenPIPolicy to PI0Policy and update configuration - Renamed `PI0OpenPIPolicy` to `PI0Policy` for consistency with naming conventions. - Updated the `PI05OpenPIConfig` to include a new `tokenizer_max_length` attribute and changed the normalization mode for state from `MEAN_STD` to `QUANTILES`. - Simplified model initialization in `PI05OpenPIPolicy` by removing unused `dataset_stats` parameter. - Added a new processor class for `Pi05PrepareStateTokenizerProcessorStep` with `@dataclass` for improved readability. - Introduced a test script to compare the integration of the PI0OpenPI policy with the original implementation, ensuring local testing compatibility. * feat(processor): convert openpi model with processor * TODO: Make test works * fix(modeling_pi0openpi): update attention mask value and time scaling; improve task handling in tests - Changed the attention mask value from `self.config.attention_mask_value` to a fixed value of `-2.3819763e38`. - Updated time scaling in the `sample_noise` method to use a constant factor of `0.999` and an offset of `0.001`. - Enhanced task handling in tests to ensure proper formatting and batch size consistency. - Cleaned up commented-out test code for clarity. * refactor(pi0): rename PI0OpenPIConfig and PI0OpenPIPolicy to PI0Config and PI0Policy - Updated imports and references throughout the codebase to reflect the new naming convention. - Introduced a new processor file for PI0 to handle pre-processing and post-processing steps. - Adjusted tests to utilize the renamed classes, ensuring consistency and functionality. - Enhanced clarity and maintainability by removing outdated naming conventions. * refactor(pi05): rename PI0OpenPIPolicy to PI0Policy and update configuration - Renamed `PI0OpenPIPolicy` to `PI0Policy` for consistency with naming conventions. - Updated the `PI05OpenPIConfig` to include a new `tokenizer_max_length` attribute and changed the normalization mode for state from `MEAN_STD` to `QUANTILES`. - Simplified model initialization in `PI05OpenPIPolicy` by removing unused `dataset_stats` parameter. - Added a new processor class for `Pi05PrepareStateTokenizerProcessorStep` with `@dataclass` for improved readability. - Introduced a test script to compare the integration of the PI0OpenPI policy with the original implementation, ensuring local testing compatibility. * refactor(pi05): update imports and rename configuration classes - Changed imports to reflect the new naming convention for PI05 configuration and policy classes. - Renamed `PI05OpenPIConfig` to `PI05Config` and `PI05OpenPIPolicy` to `PI05Policy` for consistency. - Introduced a new processor file for PI05, implementing pre-processing and post-processing steps. - Updated tests to utilize the renamed classes, ensuring functionality and consistency across the codebase. * update(pi05): increase tokenizer_max_length for improved processing - Changed the `tokenizer_max_length` from 48 to 200 to enhance the model's capability in handling longer sequences. - This adjustment aims to improve the overall performance and flexibility of the PI05 configuration. * add default for state (max_state_dim) * correct naming * fix import * cleanup code * remove unused test * us quantiles for action * move to device * remove discrete state assert * fix pi05 test * move pi05 to device * use base models in comparison tests * small renames for tests * change number of tokens pi05 test * fix openpi tokenization in test * fix hub test * fix test * assert lerobot vs openpi tests --------- Co-authored-by: Pepijn <pepijn@huggingface.co> * add headers * add back previously removed imports * update if statement load processor with dataset stats * remove to avoid circular import * inject dataset stats for pretrained models * check normalization before applying * add link to quantile augument script * fix(policies): transformers import for ci in PI0 & PI05 (#2039) * fix(policies): transformers import for ci in PI0 * fix(policies): transformers import for ci in PI05 * test(processor): fix expected raise when normalization types are missing (#2040) * switch normalization order pipeline for pi05 * Fix/quantiles script (#2064) * refactor augment stats with quantiles script add parallelization for faster processing shift the quantile normalization between -1 1 * fix replay buffer tests * fix comment * overwrite the pipeline normalization features with the policy features * remove double normalization overwrite * cleanup from pretrained * remove typo * also set norm_map * fix(augment_quantiles) images incorrectly divided by 255 * clamp quantiles * link to lerobot base models * rename tests * encorperate PR feedback * update docstring for RunningQuantileStats * update doc links * Revert "clamp quantiles" This reverts commit 172207471c8f2cb62958e9a9e6a0535ba3ff67d4. * fix self.paligemma * fix tests related to quantiles that were scaled to [0,1], the new range is [-1, 1] * fix libero doc and use different transformer branch * use fix branch instead of feat * update results libero * add new line * fix formatting * precommit * update results libero * update libero doc * update title * final changes * add quantiles to test * run pre commit --------- Signed-off-by: Steven Palma <imstevenpmwork@ieee.org> Co-authored-by: Michel Aractingi <michel.aractingi@huggingface.co> Co-authored-by: Adil Zouitine <adilzouitinegm@gmail.com> Co-authored-by: Steven Palma <imstevenpmwork@ieee.org> Co-authored-by: Steven Palma <steven.palma@huggingface.co>
354 lines
11 KiB
TOML
354 lines
11 KiB
TOML
# 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.
|
|
|
|
[build-system]
|
|
requires = ["setuptools"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project.urls]
|
|
homepage = "https://huggingface.co/lerobot"
|
|
documentation = "https://huggingface.co/docs/lerobot/index"
|
|
source = "https://github.com/huggingface/lerobot"
|
|
issues = "https://github.com/huggingface/lerobot/issues"
|
|
discord = "https://discord.gg/s3KuuzsPFb"
|
|
|
|
[project]
|
|
name = "lerobot"
|
|
version = "0.3.4"
|
|
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch"
|
|
readme = "README.md"
|
|
license = { text = "Apache-2.0" }
|
|
requires-python = ">=3.10"
|
|
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 = "Steven Palma", email = "imstevenpmwork@ieee.org" },
|
|
{ name = "Pepijn Kooijmans", email = "pepijnkooijmans@outlook.com"},
|
|
{ name = "Michel Aractingi", email = "michel.aractingi@gmail.com"},
|
|
{ name = "Adil Zouitine", email = "adilzouitinegm@gmail.com" },
|
|
{ name = "Dana Aubakirova", email = "danaaubakirova17@gmail.com"},
|
|
{ name = "Caroline Pascal", email = "caroline8.pascal@gmail.com"},
|
|
{ name = "Martino Russi", email = "nopyeps@gmail.com"},
|
|
{ name = "Thomas Wolf", email = "thomaswolfcontact@gmail.com" },
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Education",
|
|
"Intended Audience :: Science/Research",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Topic :: Software Development :: Build Tools",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
]
|
|
keywords = ["lerobot", "huggingface", "robotics", "machine learning", "artificial intelligence"]
|
|
|
|
dependencies = [
|
|
|
|
# Hugging Face dependencies
|
|
"datasets>=4.0.0",
|
|
"diffusers>=0.27.2",
|
|
"huggingface-hub[hf-transfer,cli]>=0.34.2",
|
|
|
|
# Core dependencies
|
|
"cmake>=3.29.0.1",
|
|
"einops>=0.8.0",
|
|
"opencv-python-headless>=4.9.0",
|
|
"av>=14.2.0",
|
|
"jsonlines>=4.0.0",
|
|
"packaging>=24.2",
|
|
"pynput>=1.7.7",
|
|
"pyserial>=3.5",
|
|
"wandb>=0.20.0",
|
|
|
|
"torch>=2.2.1,<2.8.0", # TODO: Bumb dependency
|
|
"torchcodec>=0.2.1,<0.6.0; 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')", # TODO: Bumb dependency
|
|
"torchvision>=0.21.0,<0.23.0", # TODO: Bumb dependency
|
|
|
|
"draccus==0.10.0", # TODO: Remove ==
|
|
"gymnasium>=0.29.1,<1.0.0", # TODO: Bumb dependency
|
|
"rerun-sdk>=0.21.0,<0.23.0", # TODO: Bumb dependency
|
|
|
|
# Support dependencies
|
|
"deepdiff>=7.0.1,<9.0.0",
|
|
"imageio[ffmpeg]>=2.34.0,<3.0.0",
|
|
"termcolor>=2.4.0,<4.0.0",
|
|
]
|
|
|
|
# Optional dependencies
|
|
[project.optional-dependencies]
|
|
|
|
# Common
|
|
pygame-dep = ["pygame>=2.5.1"]
|
|
placo-dep = ["placo>=0.9.6"]
|
|
transformers-dep = ["transformers>=4.53.0"]
|
|
grpcio-dep = ["grpcio==1.73.1", "protobuf==6.31.0"]
|
|
|
|
# Motors
|
|
feetech = ["feetech-servo-sdk>=1.0.0"]
|
|
dynamixel = ["dynamixel-sdk>=3.7.31"]
|
|
|
|
# Robots
|
|
gamepad = ["lerobot[pygame-dep]", "hidapi>=0.14.0"]
|
|
hopejr = ["lerobot[feetech]", "lerobot[pygame-dep]"]
|
|
lekiwi = ["lerobot[feetech]", "pyzmq>=26.2.1"]
|
|
reachy2 = ["reachy2_sdk>=1.0.14"]
|
|
kinematics = ["lerobot[placo-dep]"]
|
|
intelrealsense = [
|
|
"pyrealsense2>=2.55.1.6486 ; sys_platform != 'darwin'",
|
|
"pyrealsense2-macosx>=2.54 ; sys_platform == 'darwin'",
|
|
]
|
|
phone = ["hebi-py>=2.8.0", "teleop>=0.1.0"]
|
|
# stretch = [
|
|
# "hello-robot-stretch-body>=0.7.27 ; sys_platform == 'linux'",
|
|
# "pyrender @ git+https://github.com/mmatl/pyrender.git ; sys_platform == 'linux'",
|
|
# "pyrealsense2>=2.55.1.6486 ; sys_platform != 'darwin'"
|
|
# ] # TODO: Currently not supported
|
|
|
|
# Policies
|
|
pi = ["transformers @ git+https://github.com/huggingface/transformers.git@fix/lerobot_openpi"]
|
|
smolvla = ["lerobot[transformers-dep]", "num2words>=0.5.14", "accelerate>=1.7.0", "safetensors>=0.4.3"]
|
|
hilserl = ["lerobot[transformers-dep]", "gym-hil>=0.1.11", "lerobot[grpcio-dep]", "lerobot[placo-dep]"]
|
|
|
|
# Features
|
|
async = ["lerobot[grpcio-dep]", "matplotlib>=3.10.3"]
|
|
|
|
# Development
|
|
dev = ["pre-commit>=3.7.0", "debugpy>=1.8.1", "lerobot[grpcio-dep]", "grpcio-tools==1.73.1"]
|
|
test = ["pytest>=8.1.0", "pytest-timeout>=2.4.0", "pytest-cov>=5.0.0", "mock-serial>=0.0.1 ; sys_platform != 'win32'"]
|
|
video_benchmark = ["scikit-image>=0.23.2", "pandas>=2.2.2"]
|
|
|
|
# Simulation
|
|
aloha = ["gym-aloha>=0.1.1"]
|
|
pusht = ["gym-pusht>=0.1.5", "pymunk>=6.6.0,<7.0.0"] # TODO: Fix pymunk version in gym-pusht instead
|
|
xarm = ["gym-xarm>=0.1.1"]
|
|
libero = ["lerobot[transformers-dep]", "libero @ git+https://github.com/huggingface/lerobot-libero.git@main#egg=libero"]
|
|
|
|
|
|
# All
|
|
all = [
|
|
"lerobot[dynamixel]",
|
|
"lerobot[gamepad]",
|
|
"lerobot[hopejr]",
|
|
"lerobot[lekiwi]",
|
|
"lerobot[reachy2]",
|
|
"lerobot[kinematics]",
|
|
"lerobot[intelrealsense]",
|
|
"lerobot[pi]",
|
|
"lerobot[smolvla]",
|
|
"lerobot[hilserl]",
|
|
"lerobot[async]",
|
|
"lerobot[dev]",
|
|
"lerobot[test]",
|
|
"lerobot[video_benchmark]",
|
|
"lerobot[aloha]",
|
|
"lerobot[pusht]",
|
|
"lerobot[xarm]",
|
|
"lerobot[phone]",
|
|
"lerobot[libero]",
|
|
]
|
|
|
|
[project.scripts]
|
|
lerobot-calibrate="lerobot.scripts.lerobot_calibrate:main"
|
|
lerobot-find-cameras="lerobot.scripts.lerobot_find_cameras:main"
|
|
lerobot-find-port="lerobot.scripts.lerobot_find_port:main"
|
|
lerobot-record="lerobot.scripts.lerobot_record:main"
|
|
lerobot-replay="lerobot.scripts.lerobot_replay:main"
|
|
lerobot-setup-motors="lerobot.scripts.lerobot_setup_motors:main"
|
|
lerobot-teleoperate="lerobot.scripts.lerobot_teleoperate:main"
|
|
lerobot-eval="lerobot.scripts.lerobot_eval:main"
|
|
lerobot-train="lerobot.scripts.lerobot_train:main"
|
|
lerobot-dataset-viz="lerobot.scripts.lerobot_dataset_viz:main"
|
|
lerobot-info="lerobot.scripts.lerobot_info:main"
|
|
lerobot-find-joint-limits="lerobot.scripts.lerobot_find_joint_limits:main"
|
|
lerobot-imgtransform-viz="lerobot.scripts.lerobot_imgtransform_viz:main"
|
|
|
|
# ---------------- Tool Configurations ----------------
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.ruff]
|
|
target-version = "py310"
|
|
line-length = 110
|
|
exclude = ["tests/artifacts/**/*.safetensors", "*_pb2.py", "*_pb2_grpc.py"]
|
|
|
|
[tool.ruff.lint]
|
|
# E, W: pycodestyle errors and warnings
|
|
# F: PyFlakes
|
|
# I: isort
|
|
# UP: pyupgrade
|
|
# B: flake8-bugbear (good practices, potential bugs)
|
|
# C4: flake8-comprehensions (more concise comprehensions)
|
|
# A: flake8-builtins (shadowing builtins)
|
|
# SIM: flake8-simplify
|
|
# RUF: Ruff-specific rules
|
|
# D: pydocstyle (for docstring style/formatting)
|
|
# S: flake8-bandit (some security checks, complements Bandit)
|
|
# T20: flake8-print (discourage print statements in production code)
|
|
# N: pep8-naming
|
|
# TODO: Uncomment rules when ready to use
|
|
select = [
|
|
"E", "W", "F", "I", "B", "C4", "T20", "N", "UP", "SIM" #, "A", "S", "D", "RUF"
|
|
]
|
|
ignore = [
|
|
"E501", # Line too long
|
|
"T201", # Print statement found
|
|
"T203", # Pprint statement found
|
|
"B008", # Perform function call in argument defaults
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"__init__.py" = ["F401", "F403"]
|
|
|
|
[tool.ruff.lint.isort]
|
|
combine-as-imports = true
|
|
known-first-party = ["lerobot"]
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "double"
|
|
indent-style = "space"
|
|
skip-magic-trailing-comma = false
|
|
line-ending = "auto"
|
|
docstring-code-format = true
|
|
|
|
[tool.bandit]
|
|
exclude_dirs = [
|
|
"tests",
|
|
"benchmarks",
|
|
"src/lerobot/datasets/push_dataset_to_hub",
|
|
"src/lerobot/datasets/v2/convert_dataset_v1_to_v2",
|
|
"src/lerobot/policies/pi0/conversion_scripts",
|
|
"src/lerobot/scripts/push_dataset_to_hub.py",
|
|
]
|
|
skips = ["B101", "B311", "B404", "B603", "B615"]
|
|
|
|
[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",
|
|
]
|
|
|
|
# TODO: Uncomment when ready to use
|
|
# [tool.interrogate]
|
|
# ignore-init-module = true
|
|
# ignore-init-method = true
|
|
# ignore-nested-functions = false
|
|
# ignore-magic = false
|
|
# ignore-semiprivate = false
|
|
# ignore-private = false
|
|
# ignore-property-decorators = false
|
|
# ignore-module = false
|
|
# ignore-setters = false
|
|
# fail-under = 80
|
|
# output-format = "term-missing"
|
|
# color = true
|
|
# paths = ["src/lerobot"]
|
|
|
|
# TODO: Enable mypy gradually module by module across multiple PRs
|
|
# Uncomment [tool.mypy] first, then uncomment individual module overrides as they get proper type annotations
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
ignore_missing_imports = true
|
|
follow_imports = "skip"
|
|
# warn_return_any = true
|
|
# warn_unused_configs = true
|
|
# strict = true
|
|
# disallow_untyped_defs = true
|
|
# disallow_incomplete_defs = true
|
|
# check_untyped_defs = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "lerobot.*"
|
|
ignore_errors = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "lerobot.envs.*"
|
|
# Enable type checking only for the envs module
|
|
ignore_errors = false
|
|
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.utils.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.configs.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.optim.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.model.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.processor.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.datasets.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.cameras.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.motors.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.robots.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.teleoperators.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.policies.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.rl.*"
|
|
# ignore_errors = false
|
|
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.async_inference.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.transport.*"
|
|
# ignore_errors = false
|
|
|
|
# [[tool.mypy.overrides]]
|
|
# module = "lerobot.scripts.*"
|
|
# ignore_errors = false
|