# Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. """Base transform implementations for composing environment-specific transforms.""" from .interfaces import Transform from .types import Observation class CompositeTransform(Transform): """Combines multiple transforms into a single transform.""" def __init__(self, transforms: list[Transform]): self.transforms = transforms def __call__(self, observation: Observation) -> Observation: for transform in self.transforms: observation = transform(observation) return observation class NullTransform(Transform): """Default transform that passes through unchanged.""" def __call__(self, observation: Observation) -> Observation: return observation