refactor(processors): unify import statements by consolidating pipeline imports into the main processor module (#1845)

This commit is contained in:
Steven Palma
2025-09-02 18:26:59 +02:00
committed by GitHub
parent ebb464c255
commit b052843f08
46 changed files with 93 additions and 96 deletions
+1 -1
View File
@@ -21,11 +21,11 @@ from lerobot.datasets.utils import merge_features
from lerobot.model.kinematics import RobotKinematics from lerobot.model.kinematics import RobotKinematics
from lerobot.policies.act.modeling_act import ACTPolicy from lerobot.policies.act.modeling_act import ACTPolicy
from lerobot.policies.factory import make_pre_post_processors from lerobot.policies.factory import make_pre_post_processors
from lerobot.processor import RobotProcessor
from lerobot.processor.converters import ( from lerobot.processor.converters import (
to_output_robot_action, to_output_robot_action,
to_transition_robot_observation, to_transition_robot_observation,
) )
from lerobot.processor.pipeline import RobotProcessor
from lerobot.record import record_loop from lerobot.record import record_loop
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
from lerobot.robots.so100_follower.robot_kinematic_processor import ( from lerobot.robots.so100_follower.robot_kinematic_processor import (
+1 -1
View File
@@ -20,12 +20,12 @@ from lerobot.datasets.lerobot_dataset import LeRobotDataset
from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features
from lerobot.datasets.utils import merge_features from lerobot.datasets.utils import merge_features
from lerobot.model.kinematics import RobotKinematics from lerobot.model.kinematics import RobotKinematics
from lerobot.processor import RobotProcessor
from lerobot.processor.converters import ( from lerobot.processor.converters import (
to_output_robot_action, to_output_robot_action,
to_transition_robot_observation, to_transition_robot_observation,
to_transition_teleop_action, to_transition_teleop_action,
) )
from lerobot.processor.pipeline import RobotProcessor
from lerobot.record import record_loop from lerobot.record import record_loop
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
from lerobot.robots.so100_follower.robot_kinematic_processor import ( from lerobot.robots.so100_follower.robot_kinematic_processor import (
+1 -1
View File
@@ -19,8 +19,8 @@ import time
from lerobot.datasets.lerobot_dataset import LeRobotDataset from lerobot.datasets.lerobot_dataset import LeRobotDataset
from lerobot.model.kinematics import RobotKinematics from lerobot.model.kinematics import RobotKinematics
from lerobot.processor import RobotProcessor
from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action
from lerobot.processor.pipeline import RobotProcessor
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
from lerobot.robots.so100_follower.robot_kinematic_processor import ( from lerobot.robots.so100_follower.robot_kinematic_processor import (
AddRobotObservationAsComplimentaryData, AddRobotObservationAsComplimentaryData,
+1 -1
View File
@@ -17,7 +17,7 @@ from typing import Any
from lerobot.constants import ACTION, OBS_IMAGES, OBS_STATE from lerobot.constants import ACTION, OBS_IMAGES, OBS_STATE
from lerobot.datasets.utils import hw_to_dataset_features from lerobot.datasets.utils import hw_to_dataset_features
from lerobot.processor.pipeline import RobotProcessor from lerobot.processor import RobotProcessor
def aggregate_pipeline_dataset_features( def aggregate_pipeline_dataset_features(
+1 -1
View File
@@ -38,7 +38,7 @@ from lerobot.policies.sac.reward_model.configuration_classifier import RewardCla
from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig
from lerobot.policies.tdmpc.configuration_tdmpc import TDMPCConfig from lerobot.policies.tdmpc.configuration_tdmpc import TDMPCConfig
from lerobot.policies.vqbet.configuration_vqbet import VQBeTConfig from lerobot.policies.vqbet.configuration_vqbet import VQBeTConfig
from lerobot.processor.pipeline import ProcessorKwargs, RobotProcessor from lerobot.processor import ProcessorKwargs, RobotProcessor
def get_policy_class(name: str) -> type[PreTrainedPolicy]: def get_policy_class(name: str) -> type[PreTrainedPolicy]:
+4 -6
View File
@@ -21,20 +21,18 @@ from lerobot.configs.types import PolicyFeature
from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME
from lerobot.policies.pi0.configuration_pi0 import PI0Config from lerobot.policies.pi0.configuration_pi0 import PI0Config
from lerobot.processor import ( from lerobot.processor import (
ComplementaryDataProcessor,
DeviceProcessor, DeviceProcessor,
NormalizerProcessor, NormalizerProcessor,
ProcessorKwargs, ProcessorKwargs,
ProcessorStep,
ProcessorStepRegistry,
RenameProcessor,
RobotProcessor, RobotProcessor,
ToBatchProcessor, ToBatchProcessor,
TokenizerProcessor, TokenizerProcessor,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import (
ComplementaryDataProcessor,
ProcessorStep,
ProcessorStepRegistry,
)
from lerobot.processor.rename_processor import RenameProcessor
@ProcessorStepRegistry.register(name="pi0_new_line_processor") @ProcessorStepRegistry.register(name="pi0_new_line_processor")
@@ -20,19 +20,17 @@ from lerobot.configs.types import PolicyFeature
from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME
from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig
from lerobot.processor import ( from lerobot.processor import (
ComplementaryDataProcessor,
DeviceProcessor, DeviceProcessor,
NormalizerProcessor, NormalizerProcessor,
ProcessorKwargs, ProcessorKwargs,
ProcessorStepRegistry,
RenameProcessor, RenameProcessor,
RobotProcessor, RobotProcessor,
ToBatchProcessor, ToBatchProcessor,
TokenizerProcessor, TokenizerProcessor,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import (
ComplementaryDataProcessor,
ProcessorStepRegistry,
)
def make_smolvla_pre_post_processors( def make_smolvla_pre_post_processors(
+2
View File
@@ -40,6 +40,7 @@ from .normalize_processor import NormalizerProcessor, UnnormalizerProcessor, hot
from .observation_processor import VanillaObservationProcessor from .observation_processor import VanillaObservationProcessor
from .pipeline import ( from .pipeline import (
ActionProcessor, ActionProcessor,
ComplementaryDataProcessor,
DoneProcessor, DoneProcessor,
IdentityProcessor, IdentityProcessor,
InfoProcessor, InfoProcessor,
@@ -58,6 +59,7 @@ __all__ = [
"ActionProcessor", "ActionProcessor",
"AddTeleopActionAsComplimentaryData", "AddTeleopActionAsComplimentaryData",
"AddTeleopEventsAsInfo", "AddTeleopEventsAsInfo",
"ComplementaryDataProcessor",
"batch_to_transition", "batch_to_transition",
"create_transition", "create_transition",
"DeviceProcessor", "DeviceProcessor",
+3 -2
View File
@@ -17,10 +17,11 @@ from torch import Tensor
from lerobot.configs.types import PolicyFeature from lerobot.configs.types import PolicyFeature
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
from lerobot.processor.pipeline import (
from .core import EnvTransition
from .pipeline import (
ActionProcessor, ActionProcessor,
ComplementaryDataProcessor, ComplementaryDataProcessor,
EnvTransition,
ObservationProcessor, ObservationProcessor,
ProcessorStep, ProcessorStep,
ProcessorStepRegistry, ProcessorStepRegistry,
@@ -19,7 +19,8 @@ from dataclasses import dataclass
from torch import Tensor from torch import Tensor
from lerobot.configs.types import FeatureType, PolicyFeature from lerobot.configs.types import FeatureType, PolicyFeature
from lerobot.processor.pipeline import ActionProcessor, ProcessorStepRegistry
from .pipeline import ActionProcessor, ProcessorStepRegistry
@ProcessorStepRegistry.register("map_tensor_to_delta_action_dict") @ProcessorStepRegistry.register("map_tensor_to_delta_action_dict")
+3 -2
View File
@@ -19,10 +19,11 @@ from typing import Any
import torch import torch
from lerobot.configs.types import PolicyFeature from lerobot.configs.types import PolicyFeature
from lerobot.processor.core import EnvTransition, TransitionKey
from lerobot.processor.pipeline import ProcessorStep, ProcessorStepRegistry
from lerobot.utils.utils import get_safe_torch_device from lerobot.utils.utils import get_safe_torch_device
from .core import EnvTransition, TransitionKey
from .pipeline import ProcessorStep, ProcessorStepRegistry
@ProcessorStepRegistry.register("device_processor") @ProcessorStepRegistry.register("device_processor")
@dataclass @dataclass
@@ -17,8 +17,9 @@ import numpy as np
import torch import torch
from lerobot.configs.types import PolicyFeature from lerobot.configs.types import PolicyFeature
from lerobot.processor.converters import to_tensor
from lerobot.processor.pipeline import ActionProcessor, ProcessorStepRegistry from .converters import to_tensor
from .pipeline import ActionProcessor, ProcessorStepRegistry
@ProcessorStepRegistry.register("torch2numpy_action_processor") @ProcessorStepRegistry.register("torch2numpy_action_processor")
+5 -5
View File
@@ -9,18 +9,18 @@ import torchvision.transforms.functional as F # noqa: N812
from lerobot.configs.types import PolicyFeature from lerobot.configs.types import PolicyFeature
from lerobot.constants import ACTION from lerobot.constants import ACTION
from lerobot.processor.pipeline import ( from lerobot.teleoperators.teleoperator import Teleoperator
from lerobot.teleoperators.utils import TeleopEvents
from .core import EnvTransition, TransitionKey
from .pipeline import (
ComplementaryDataProcessor, ComplementaryDataProcessor,
EnvTransition,
InfoProcessor, InfoProcessor,
ObservationProcessor, ObservationProcessor,
ProcessorStep, ProcessorStep,
ProcessorStepRegistry, ProcessorStepRegistry,
TransitionKey,
TruncatedProcessor, TruncatedProcessor,
) )
from lerobot.teleoperators.teleoperator import Teleoperator
from lerobot.teleoperators.utils import TeleopEvents
GRIPPER_KEY = "gripper" GRIPPER_KEY = "gripper"
DISCRETE_PENALTY_KEY = "discrete_penalty" DISCRETE_PENALTY_KEY = "discrete_penalty"
@@ -4,12 +4,10 @@ from typing import Any
import torch import torch
from lerobot.configs.types import PolicyFeature from lerobot.configs.types import PolicyFeature
from lerobot.processor.pipeline import (
ObservationProcessor,
ProcessorStepRegistry,
)
from lerobot.robots import Robot from lerobot.robots import Robot
from .pipeline import ObservationProcessor, ProcessorStepRegistry
@dataclass @dataclass
@ProcessorStepRegistry.register("joint_velocity_processor") @ProcessorStepRegistry.register("joint_velocity_processor")
@@ -46,11 +46,12 @@ from huggingface_hub import hf_hub_download
from safetensors.torch import load_file as load_safetensors from safetensors.torch import load_file as load_safetensors
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
from lerobot.processor.batch_processor import ToBatchProcessor
from lerobot.processor.device_processor import DeviceProcessor from .batch_processor import ToBatchProcessor
from lerobot.processor.normalize_processor import NormalizerProcessor, UnnormalizerProcessor from .device_processor import DeviceProcessor
from lerobot.processor.pipeline import RobotProcessor from .normalize_processor import NormalizerProcessor, UnnormalizerProcessor
from lerobot.processor.rename_processor import RenameProcessor from .pipeline import RobotProcessor
from .rename_processor import RenameProcessor
# Policy type to class mapping # Policy type to class mapping
POLICY_CLASSES = { POLICY_CLASSES = {
+4 -8
View File
@@ -9,14 +9,10 @@ from torch import Tensor
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
from lerobot.datasets.lerobot_dataset import LeRobotDataset from lerobot.datasets.lerobot_dataset import LeRobotDataset
from lerobot.processor.converters import to_tensor
from lerobot.processor.pipeline import ( from .converters import to_tensor
EnvTransition, from .core import EnvTransition, TransitionKey
ProcessorStep, from .pipeline import ProcessorStep, ProcessorStepRegistry, RobotProcessor
ProcessorStepRegistry,
RobotProcessor,
TransitionKey,
)
@dataclass @dataclass
@@ -22,7 +22,8 @@ from torch import Tensor
from lerobot.configs.types import PolicyFeature from lerobot.configs.types import PolicyFeature
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
from lerobot.processor.pipeline import ObservationProcessor, ProcessorStepRegistry
from .pipeline import ObservationProcessor, ProcessorStepRegistry
@dataclass @dataclass
+2 -4
View File
@@ -18,10 +18,8 @@ from dataclasses import dataclass, field
from typing import Any from typing import Any
from lerobot.configs.types import PolicyFeature from lerobot.configs.types import PolicyFeature
from lerobot.processor.pipeline import (
ObservationProcessor, from .pipeline import ObservationProcessor, ProcessorStepRegistry
ProcessorStepRegistry,
)
@dataclass @dataclass
+3 -6
View File
@@ -11,14 +11,11 @@ import torch
from lerobot.configs.types import FeatureType, PolicyFeature from lerobot.configs.types import FeatureType, PolicyFeature
from lerobot.constants import OBS_LANGUAGE_ATTENTION_MASK, OBS_LANGUAGE_TOKENS from lerobot.constants import OBS_LANGUAGE_ATTENTION_MASK, OBS_LANGUAGE_TOKENS
from lerobot.processor.pipeline import (
EnvTransition,
ObservationProcessor,
ProcessorStepRegistry,
TransitionKey,
)
from lerobot.utils.import_utils import _transformers_available from lerobot.utils.import_utils import _transformers_available
from .core import EnvTransition, TransitionKey
from .pipeline import ObservationProcessor, ProcessorStepRegistry
if TYPE_CHECKING or _transformers_available: if TYPE_CHECKING or _transformers_available:
from transformers import AutoTokenizer from transformers import AutoTokenizer
else: else:
+1 -2
View File
@@ -76,14 +76,13 @@ from lerobot.datasets.utils import hw_to_dataset_features
from lerobot.datasets.video_utils import VideoEncodingManager from lerobot.datasets.video_utils import VideoEncodingManager
from lerobot.policies.factory import make_policy, make_pre_post_processors from lerobot.policies.factory import make_policy, make_pre_post_processors
from lerobot.policies.pretrained import PreTrainedPolicy from lerobot.policies.pretrained import PreTrainedPolicy
from lerobot.processor import RobotProcessor from lerobot.processor import IdentityProcessor, RobotProcessor, TransitionKey
from lerobot.processor.converters import ( from lerobot.processor.converters import (
to_output_robot_action, to_output_robot_action,
to_transition_robot_observation, to_transition_robot_observation,
to_transition_teleop_action, to_transition_teleop_action,
transition_to_dataset_frame, transition_to_dataset_frame,
) )
from lerobot.processor.pipeline import IdentityProcessor, TransitionKey
from lerobot.processor.rename_processor import rename_stats from lerobot.processor.rename_processor import rename_stats
from lerobot.robots import ( # noqa: F401 from lerobot.robots import ( # noqa: F401
Robot, Robot,
+1 -2
View File
@@ -47,9 +47,8 @@ from pprint import pformat
from lerobot.configs import parser from lerobot.configs import parser
from lerobot.datasets.lerobot_dataset import LeRobotDataset from lerobot.datasets.lerobot_dataset import LeRobotDataset
from lerobot.processor import RobotProcessor from lerobot.processor import IdentityProcessor, RobotProcessor
from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action
from lerobot.processor.pipeline import IdentityProcessor
from lerobot.robots import ( # noqa: F401 from lerobot.robots import ( # noqa: F401
Robot, Robot,
RobotConfig, RobotConfig,
@@ -22,7 +22,7 @@ from scipy.spatial.transform import Rotation
from lerobot.configs.types import FeatureType, PolicyFeature from lerobot.configs.types import FeatureType, PolicyFeature
from lerobot.constants import ACTION, OBS_STATE from lerobot.constants import ACTION, OBS_STATE
from lerobot.model.kinematics import RobotKinematics from lerobot.model.kinematics import RobotKinematics
from lerobot.processor.pipeline import ( from lerobot.processor import (
ActionProcessor, ActionProcessor,
ComplementaryDataProcessor, ComplementaryDataProcessor,
EnvTransition, EnvTransition,
+1 -1
View File
@@ -62,7 +62,7 @@ from lerobot.configs import parser
from lerobot.configs.train import TrainRLServerPipelineConfig from lerobot.configs.train import TrainRLServerPipelineConfig
from lerobot.policies.factory import make_policy from lerobot.policies.factory import make_policy
from lerobot.policies.sac.modeling_sac import SACPolicy from lerobot.policies.sac.modeling_sac import SACPolicy
from lerobot.processor.pipeline import TransitionKey from lerobot.processor import TransitionKey
from lerobot.robots import so100_follower # noqa: F401 from lerobot.robots import so100_follower # noqa: F401
from lerobot.scripts.rl.gym_manipulator import ( from lerobot.scripts.rl.gym_manipulator import (
create_transition, create_transition,
+2 -1
View File
@@ -32,6 +32,7 @@ from lerobot.processor import (
AddTeleopActionAsComplimentaryData, AddTeleopActionAsComplimentaryData,
AddTeleopEventsAsInfo, AddTeleopEventsAsInfo,
DeviceProcessor, DeviceProcessor,
EnvTransition,
GripperPenaltyProcessor, GripperPenaltyProcessor,
ImageCropResizeProcessor, ImageCropResizeProcessor,
InterventionActionProcessor, InterventionActionProcessor,
@@ -45,10 +46,10 @@ from lerobot.processor import (
TimeLimitProcessor, TimeLimitProcessor,
ToBatchProcessor, ToBatchProcessor,
Torch2NumpyActionProcessor, Torch2NumpyActionProcessor,
TransitionKey,
VanillaObservationProcessor, VanillaObservationProcessor,
create_transition, create_transition,
) )
from lerobot.processor.pipeline import EnvTransition, TransitionKey
from lerobot.robots import ( # noqa: F401 from lerobot.robots import ( # noqa: F401
RobotConfig, RobotConfig,
make_robot_from_config, make_robot_from_config,
+1 -2
View File
@@ -61,13 +61,12 @@ import rerun as rr
from lerobot.cameras.opencv.configuration_opencv import OpenCVCameraConfig # noqa: F401 from lerobot.cameras.opencv.configuration_opencv import OpenCVCameraConfig # noqa: F401
from lerobot.cameras.realsense.configuration_realsense import RealSenseCameraConfig # noqa: F401 from lerobot.cameras.realsense.configuration_realsense import RealSenseCameraConfig # noqa: F401
from lerobot.configs import parser from lerobot.configs import parser
from lerobot.processor import RobotProcessor from lerobot.processor import IdentityProcessor, RobotProcessor
from lerobot.processor.converters import ( from lerobot.processor.converters import (
to_output_robot_action, to_output_robot_action,
to_transition_robot_observation, to_transition_robot_observation,
to_transition_teleop_action, to_transition_teleop_action,
) )
from lerobot.processor.pipeline import IdentityProcessor
from lerobot.robots import ( # noqa: F401 from lerobot.robots import ( # noqa: F401
Robot, Robot,
RobotConfig, RobotConfig,
@@ -17,7 +17,7 @@
from dataclasses import dataclass, field from dataclasses import dataclass, field
from lerobot.configs.types import FeatureType, PolicyFeature from lerobot.configs.types import FeatureType, PolicyFeature
from lerobot.processor.pipeline import ActionProcessor, ProcessorStepRegistry from lerobot.processor import ActionProcessor, ProcessorStepRegistry
from lerobot.teleoperators.phone.config_phone import PhoneOS from lerobot.teleoperators.phone.config_phone import PhoneOS
+1 -1
View File
@@ -32,7 +32,7 @@ from lerobot.datasets.utils import load_json, write_json
from lerobot.optim.optimizers import load_optimizer_state, save_optimizer_state from lerobot.optim.optimizers import load_optimizer_state, save_optimizer_state
from lerobot.optim.schedulers import load_scheduler_state, save_scheduler_state from lerobot.optim.schedulers import load_scheduler_state, save_scheduler_state
from lerobot.policies.pretrained import PreTrainedPolicy from lerobot.policies.pretrained import PreTrainedPolicy
from lerobot.processor.pipeline import RobotProcessor from lerobot.processor import RobotProcessor
from lerobot.utils.random_utils import load_rng_state, save_rng_state from lerobot.utils.random_utils import load_rng_state, save_rng_state
+1 -1
View File
@@ -19,7 +19,7 @@ from typing import Any
import numpy as np import numpy as np
import rerun as rr import rerun as rr
from lerobot.processor.pipeline import EnvTransition, TransitionKey from lerobot.processor import EnvTransition, TransitionKey
def _init_rerun(session_name: str = "lerobot_control_loop") -> None: def _init_rerun(session_name: str = "lerobot_control_loop") -> None:
+1 -1
View File
@@ -30,9 +30,9 @@ from lerobot.processor import (
RenameProcessor, RenameProcessor,
RobotProcessor, RobotProcessor,
ToBatchProcessor, ToBatchProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import TransitionKey
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+1 -1
View File
@@ -1,7 +1,7 @@
import torch import torch
from lerobot.processor import RobotProcessor, TransitionKey
from lerobot.processor.converters import batch_to_transition, transition_to_batch from lerobot.processor.converters import batch_to_transition, transition_to_batch
from lerobot.processor.pipeline import RobotProcessor, TransitionKey
def _dummy_batch(): def _dummy_batch():
+1 -3
View File
@@ -22,9 +22,7 @@ import pytest
import torch import torch
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
from lerobot.processor import ProcessorStepRegistry, RobotProcessor from lerobot.processor import ProcessorStepRegistry, RobotProcessor, ToBatchProcessor, TransitionKey
from lerobot.processor.batch_processor import ToBatchProcessor
from lerobot.processor.pipeline import TransitionKey
def create_transition( def create_transition(
+7 -2
View File
@@ -24,8 +24,13 @@ from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
from lerobot.constants import OBS_IMAGE, OBS_STATE from lerobot.constants import OBS_IMAGE, OBS_STATE
from lerobot.policies.sac.reward_model.configuration_classifier import RewardClassifierConfig from lerobot.policies.sac.reward_model.configuration_classifier import RewardClassifierConfig
from lerobot.policies.sac.reward_model.processor_classifier import make_classifier_processor from lerobot.policies.sac.reward_model.processor_classifier import make_classifier_processor
from lerobot.processor import DeviceProcessor, IdentityProcessor, NormalizerProcessor, RobotProcessor from lerobot.processor import (
from lerobot.processor.pipeline import TransitionKey DeviceProcessor,
IdentityProcessor,
NormalizerProcessor,
RobotProcessor,
TransitionKey,
)
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+1 -1
View File
@@ -2,6 +2,7 @@ import numpy as np
import pytest import pytest
import torch import torch
from lerobot.processor import TransitionKey
from lerobot.processor.converters import ( from lerobot.processor.converters import (
batch_to_transition, batch_to_transition,
to_output_robot_action, to_output_robot_action,
@@ -11,7 +12,6 @@ from lerobot.processor.converters import (
transition_to_batch, transition_to_batch,
transition_to_dataset_frame, transition_to_dataset_frame,
) )
from lerobot.processor.pipeline import TransitionKey
def test_to_transition_teleop_action_prefix_and_tensor_conversion(): def test_to_transition_teleop_action_prefix_and_tensor_conversion():
+2 -3
View File
@@ -19,8 +19,7 @@ import pytest
import torch import torch
from lerobot.configs.types import FeatureType, PolicyFeature from lerobot.configs.types import FeatureType, PolicyFeature
from lerobot.processor import DeviceProcessor, RobotProcessor from lerobot.processor import DeviceProcessor, RobotProcessor, TransitionKey
from lerobot.processor.pipeline import TransitionKey
def create_transition( def create_transition(
@@ -358,7 +357,7 @@ def test_save_and_load_pretrained():
def test_registry_functionality(): def test_registry_functionality():
"""Test that DeviceProcessor is properly registered.""" """Test that DeviceProcessor is properly registered."""
from lerobot.processor.pipeline import ProcessorStepRegistry from lerobot.processor import ProcessorStepRegistry
# Check that DeviceProcessor is registered # Check that DeviceProcessor is registered
registered_class = ProcessorStepRegistry.get("device_processor") registered_class = ProcessorStepRegistry.get("device_processor")
+1 -1
View File
@@ -30,9 +30,9 @@ from lerobot.processor import (
RenameProcessor, RenameProcessor,
RobotProcessor, RobotProcessor,
ToBatchProcessor, ToBatchProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import TransitionKey
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+5 -3
View File
@@ -20,13 +20,15 @@ import pytest
import torch import torch
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
from lerobot.processor.converters import to_tensor from lerobot.processor import (
from lerobot.processor.normalize_processor import ( IdentityProcessor,
NormalizerProcessor, NormalizerProcessor,
RobotProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
hotswap_stats, hotswap_stats,
) )
from lerobot.processor.pipeline import IdentityProcessor, RobotProcessor, TransitionKey from lerobot.processor.converters import to_tensor
def create_transition( def create_transition(
@@ -20,8 +20,7 @@ import torch
from lerobot.configs.types import FeatureType from lerobot.configs.types import FeatureType
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
from lerobot.processor import VanillaObservationProcessor from lerobot.processor import TransitionKey, VanillaObservationProcessor
from lerobot.processor.pipeline import TransitionKey
from tests.conftest import assert_contract_is_typed from tests.conftest import assert_contract_is_typed
+1 -1
View File
@@ -29,9 +29,9 @@ from lerobot.processor import (
NormalizerProcessor, NormalizerProcessor,
RenameProcessor, RenameProcessor,
ToBatchProcessor, ToBatchProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import TransitionKey
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+1 -2
View File
@@ -27,8 +27,7 @@ import torch.nn as nn
from lerobot.configs.types import FeatureType, PolicyFeature from lerobot.configs.types import FeatureType, PolicyFeature
from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features
from lerobot.processor import EnvTransition, ProcessorStepRegistry, RobotProcessor from lerobot.processor import EnvTransition, ProcessorStepRegistry, RobotProcessor, TransitionKey
from lerobot.processor.pipeline import TransitionKey
from tests.conftest import assert_contract_is_typed from tests.conftest import assert_contract_is_typed
+6 -1
View File
@@ -20,7 +20,12 @@ import numpy as np
import torch import torch
from lerobot.configs.types import FeatureType from lerobot.configs.types import FeatureType
from lerobot.processor import ProcessorStepRegistry, RenameProcessor, RobotProcessor, TransitionKey from lerobot.processor import (
ProcessorStepRegistry,
RenameProcessor,
RobotProcessor,
TransitionKey,
)
from lerobot.processor.rename_processor import rename_stats from lerobot.processor.rename_processor import rename_stats
from tests.conftest import assert_contract_is_typed from tests.conftest import assert_contract_is_typed
+1 -1
View File
@@ -30,9 +30,9 @@ from lerobot.processor import (
RenameProcessor, RenameProcessor,
RobotProcessor, RobotProcessor,
ToBatchProcessor, ToBatchProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import TransitionKey
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+1 -1
View File
@@ -32,9 +32,9 @@ from lerobot.processor import (
NormalizerProcessor, NormalizerProcessor,
RenameProcessor, RenameProcessor,
ToBatchProcessor, ToBatchProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import TransitionKey
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+1 -1
View File
@@ -30,9 +30,9 @@ from lerobot.processor import (
RenameProcessor, RenameProcessor,
RobotProcessor, RobotProcessor,
ToBatchProcessor, ToBatchProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import TransitionKey
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+2 -3
View File
@@ -10,8 +10,7 @@ import torch
from lerobot.configs.types import FeatureType, PolicyFeature from lerobot.configs.types import FeatureType, PolicyFeature
from lerobot.constants import OBS_LANGUAGE from lerobot.constants import OBS_LANGUAGE
from lerobot.processor.pipeline import RobotProcessor, TransitionKey from lerobot.processor import RobotProcessor, TokenizerProcessor, TransitionKey
from lerobot.processor.tokenizer_processor import TokenizerProcessor
from tests.utils import require_package from tests.utils import require_package
@@ -488,7 +487,7 @@ def test_save_and_load_pretrained_with_tokenizer_object():
@require_package("transformers") @require_package("transformers")
def test_registry_functionality(): def test_registry_functionality():
"""Test that the processor is properly registered.""" """Test that the processor is properly registered."""
from lerobot.processor.pipeline import ProcessorStepRegistry from lerobot.processor import ProcessorStepRegistry
# Check that the processor is registered # Check that the processor is registered
assert "tokenizer_processor" in ProcessorStepRegistry.list() assert "tokenizer_processor" in ProcessorStepRegistry.list()
+1 -1
View File
@@ -30,9 +30,9 @@ from lerobot.processor import (
RenameProcessor, RenameProcessor,
RobotProcessor, RobotProcessor,
ToBatchProcessor, ToBatchProcessor,
TransitionKey,
UnnormalizerProcessor, UnnormalizerProcessor,
) )
from lerobot.processor.pipeline import TransitionKey
def create_transition(observation=None, action=None, **kwargs): def create_transition(observation=None, action=None, **kwargs):
+1 -1
View File
@@ -5,7 +5,7 @@ from types import SimpleNamespace
import numpy as np import numpy as np
import pytest import pytest
from lerobot.processor.pipeline import TransitionKey from lerobot.processor import TransitionKey
@pytest.fixture @pytest.fixture