(fix): linter
This commit is contained in:
@@ -46,8 +46,6 @@ repos:
|
|||||||
rev: v3.20.0
|
rev: v3.20.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: pyupgrade
|
- id: pyupgrade
|
||||||
# Exclude generated protobuf files
|
|
||||||
exclude: '^(.*_pb2_grpc\.py|.*_pb2\.py$)'
|
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.11.11
|
rev: v0.11.11
|
||||||
hooks:
|
hooks:
|
||||||
|
|||||||
@@ -795,7 +795,6 @@ class MotorsBus(abc.ABC):
|
|||||||
norm = ((bounded_val - min_) / (max_ - min_)) * 100
|
norm = ((bounded_val - min_) / (max_ - min_)) * 100
|
||||||
normalized_values[id_] = 100 - norm if drive_mode else norm
|
normalized_values[id_] = 100 - norm if drive_mode else norm
|
||||||
elif self.motors[motor].norm_mode is MotorNormMode.DEGREE:
|
elif self.motors[motor].norm_mode is MotorNormMode.DEGREE:
|
||||||
homing_offset = self.calibration[motor].homing_offset
|
|
||||||
resolution = self.model_resolution_table[self.motors[motor].model]
|
resolution = self.model_resolution_table[self.motors[motor].model]
|
||||||
if drive_mode:
|
if drive_mode:
|
||||||
val *= -1
|
val *= -1
|
||||||
@@ -830,16 +829,14 @@ class MotorsBus(abc.ABC):
|
|||||||
bounded_val = min(100.0, max(0.0, val))
|
bounded_val = min(100.0, max(0.0, val))
|
||||||
unnormalized_values[id_] = int((bounded_val / 100) * (max_ - min_) + min_)
|
unnormalized_values[id_] = int((bounded_val / 100) * (max_ - min_) + min_)
|
||||||
elif self.motors[motor].norm_mode is MotorNormMode.DEGREE:
|
elif self.motors[motor].norm_mode is MotorNormMode.DEGREE:
|
||||||
homing_offset = self.calibration[motor].homing_offset
|
|
||||||
resolution = self.model_resolution_table[self.motors[motor].model]
|
resolution = self.model_resolution_table[self.motors[motor].model]
|
||||||
# middle_pos = homing_offset + resolution // 2
|
|
||||||
middle_pos = int((max_ + min_) / 2)
|
middle_pos = int((max_ + min_) / 2)
|
||||||
unnormalized_values[id_] = int((val / 180) * resolution // 2) + middle_pos
|
unnormalized_values[id_] = int((val / 180) * resolution // 2) + middle_pos
|
||||||
if drive_mode:
|
if drive_mode:
|
||||||
unnormalized_values[id_] *= -1
|
unnormalized_values[id_] *= -1
|
||||||
|
|
||||||
if unnormalized_values[id_] < 0:
|
# if unnormalized_values[id_] < 0:
|
||||||
breakpoint()
|
# breakpoint()
|
||||||
else:
|
else:
|
||||||
# TODO(aliberts): degree mode
|
# TODO(aliberts): degree mode
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class SO100FollowerEndEffector(SO100Follower):
|
|||||||
if self.current_joint_pos is None:
|
if self.current_joint_pos is None:
|
||||||
# Read current joint positions
|
# Read current joint positions
|
||||||
current_joint_pos = self.bus.sync_read("Present_Position")
|
current_joint_pos = self.bus.sync_read("Present_Position")
|
||||||
self.current_joint_pos = np.array([current_joint_pos[name] for name in self.bus.motors.keys()])
|
self.current_joint_pos = np.array([current_joint_pos[name] for name in self.bus.motors])
|
||||||
|
|
||||||
# Calculate current end-effector position using forward kinematics
|
# Calculate current end-effector position using forward kinematics
|
||||||
if self.current_ee_pos is None:
|
if self.current_ee_pos is None:
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||||
# NO CHECKED-IN PROTOBUF GENCODE
|
# NO CHECKED-IN PROTOBUF GENCODE
|
||||||
# source: lerobot/common/transport/services.proto
|
# source: lerobot/common/transport/services.proto
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ if _version_not_supported:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class LearnerServiceStub(object):
|
class LearnerServiceStub:
|
||||||
"""LearnerService: the Actor calls this to push transitions.
|
"""LearnerService: the Actor calls this to push transitions.
|
||||||
The Learner implements this service.
|
The Learner implements this service.
|
||||||
"""
|
"""
|
||||||
@@ -63,7 +63,7 @@ class LearnerServiceStub(object):
|
|||||||
_registered_method=True)
|
_registered_method=True)
|
||||||
|
|
||||||
|
|
||||||
class LearnerServiceServicer(object):
|
class LearnerServiceServicer:
|
||||||
"""LearnerService: the Actor calls this to push transitions.
|
"""LearnerService: the Actor calls this to push transitions.
|
||||||
The Learner implements this service.
|
The Learner implements this service.
|
||||||
"""
|
"""
|
||||||
@@ -135,7 +135,7 @@ def add_LearnerServiceServicer_to_server(servicer, server):
|
|||||||
|
|
||||||
|
|
||||||
# This class is part of an EXPERIMENTAL API.
|
# This class is part of an EXPERIMENTAL API.
|
||||||
class LearnerService(object):
|
class LearnerService:
|
||||||
"""LearnerService: the Actor calls this to push transitions.
|
"""LearnerService: the Actor calls this to push transitions.
|
||||||
The Learner implements this service.
|
The Learner implements this service.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -137,6 +137,9 @@ exclude = [
|
|||||||
[tool.ruff.lint]
|
[tool.ruff.lint]
|
||||||
select = ["E4", "E7", "E9", "F", "I", "N", "B", "C4", "SIM"]
|
select = ["E4", "E7", "E9", "F", "I", "N", "B", "C4", "SIM"]
|
||||||
|
|
||||||
|
[tool.ruff.lint.per-file-ignores]
|
||||||
|
"__init__.py" = ["F401", "F403"]
|
||||||
|
|
||||||
[tool.bandit]
|
[tool.bandit]
|
||||||
exclude_dirs = [
|
exclude_dirs = [
|
||||||
"tests",
|
"tests",
|
||||||
|
|||||||
@@ -72,9 +72,7 @@ def test_same_attributes_defined(tmp_path, lerobot_dataset_factory):
|
|||||||
# Instantiate both ways
|
# Instantiate both ways
|
||||||
robot = make_robot("koch", mock=True)
|
robot = make_robot("koch", mock=True)
|
||||||
root_create = tmp_path / "create"
|
root_create = tmp_path / "create"
|
||||||
dataset_create = LeRobotDataset.create(
|
dataset_create = LeRobotDataset.create(repo_id=DUMMY_REPO_ID, fps=30, robot=robot, root=root_create)
|
||||||
repo_id=DUMMY_REPO_ID, fps=30, robot=robot, root=root_create
|
|
||||||
)
|
|
||||||
|
|
||||||
root_init = tmp_path / "init"
|
root_init = tmp_path / "init"
|
||||||
dataset_init = lerobot_dataset_factory(root=root_init)
|
dataset_init = lerobot_dataset_factory(root=root_init)
|
||||||
@@ -126,9 +124,7 @@ def test_add_frame_extra_feature(tmp_path, empty_lerobot_dataset_factory):
|
|||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
ValueError, match="Feature mismatch in `frame` dictionary:\nExtra features: {'extra'}\n"
|
ValueError, match="Feature mismatch in `frame` dictionary:\nExtra features: {'extra'}\n"
|
||||||
):
|
):
|
||||||
dataset.add_frame(
|
dataset.add_frame({"state": torch.randn(1), "task": "Dummy task", "extra": "dummy_extra"})
|
||||||
{"state": torch.randn(1), "task": "Dummy task", "extra": "dummy_extra"}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_add_frame_wrong_type(tmp_path, empty_lerobot_dataset_factory):
|
def test_add_frame_wrong_type(tmp_path, empty_lerobot_dataset_factory):
|
||||||
@@ -137,9 +133,7 @@ def test_add_frame_wrong_type(tmp_path, empty_lerobot_dataset_factory):
|
|||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
ValueError, match="The feature 'state' of dtype 'float16' is not of the expected dtype 'float32'.\n"
|
ValueError, match="The feature 'state' of dtype 'float16' is not of the expected dtype 'float32'.\n"
|
||||||
):
|
):
|
||||||
dataset.add_frame(
|
dataset.add_frame({"state": torch.randn(1, dtype=torch.float16), "task": "Dummy task"})
|
||||||
{"state": torch.randn(1, dtype=torch.float16), "task": "Dummy task"}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_add_frame_wrong_shape(tmp_path, empty_lerobot_dataset_factory):
|
def test_add_frame_wrong_shape(tmp_path, empty_lerobot_dataset_factory):
|
||||||
@@ -147,9 +141,7 @@ def test_add_frame_wrong_shape(tmp_path, empty_lerobot_dataset_factory):
|
|||||||
dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features)
|
dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features)
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
ValueError,
|
ValueError,
|
||||||
match=re.escape(
|
match=re.escape("The feature 'state' of shape '(1,)' does not have the expected shape '(2,)'.\n"),
|
||||||
"The feature 'state' of shape '(1,)' does not have the expected shape '(2,)'.\n"
|
|
||||||
),
|
|
||||||
):
|
):
|
||||||
dataset.add_frame({"state": torch.randn(1), "task": "Dummy task"})
|
dataset.add_frame({"state": torch.randn(1), "task": "Dummy task"})
|
||||||
|
|
||||||
@@ -171,9 +163,7 @@ def test_add_frame_wrong_shape_torch_ndim_0(tmp_path, empty_lerobot_dataset_fact
|
|||||||
dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features)
|
dataset = empty_lerobot_dataset_factory(root=tmp_path / "test", features=features)
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
ValueError,
|
ValueError,
|
||||||
match=re.escape(
|
match=re.escape("The feature 'state' of shape '()' does not have the expected shape '(1,)'.\n"),
|
||||||
"The feature 'state' of shape '()' does not have the expected shape '(1,)'.\n"
|
|
||||||
),
|
|
||||||
):
|
):
|
||||||
dataset.add_frame({"state": torch.tensor(1.0), "task": "Dummy task"})
|
dataset.add_frame({"state": torch.tensor(1.0), "task": "Dummy task"})
|
||||||
|
|
||||||
@@ -467,9 +457,7 @@ def test_flatten_unflatten_dict():
|
|||||||
d = unflatten_dict(flatten_dict(d))
|
d = unflatten_dict(flatten_dict(d))
|
||||||
|
|
||||||
# test equality between nested dicts
|
# test equality between nested dicts
|
||||||
assert json.dumps(original_d, sort_keys=True) == json.dumps(d, sort_keys=True), (
|
assert json.dumps(original_d, sort_keys=True) == json.dumps(d, sort_keys=True), f"{original_d} != {d}"
|
||||||
f"{original_d} != {d}"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -523,13 +511,7 @@ def test_backward_compatibility(repo_id):
|
|||||||
load_and_compare(i + 1)
|
load_and_compare(i + 1)
|
||||||
|
|
||||||
# test 2 frames at the middle of first episode
|
# test 2 frames at the middle of first episode
|
||||||
i = int(
|
i = int((dataset.episode_data_index["to"][0].item() - dataset.episode_data_index["from"][0].item()) / 2)
|
||||||
(
|
|
||||||
dataset.episode_data_index["to"][0].item()
|
|
||||||
- dataset.episode_data_index["from"][0].item()
|
|
||||||
)
|
|
||||||
/ 2
|
|
||||||
)
|
|
||||||
load_and_compare(i)
|
load_and_compare(i)
|
||||||
load_and_compare(i + 1)
|
load_and_compare(i + 1)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user