mirror of
https://github.com/huggingface/lerobot.git
synced 2026-08-08 17:39:44 +00:00
refactor(g05): avoid shared recipe changes
This commit is contained in:
@@ -104,7 +104,6 @@ class TrainingRecipe:
|
||||
|
||||
messages: list[MessageTurn] | None = None
|
||||
bindings: dict[str, str] | None = None
|
||||
requires: list[str] | None = None
|
||||
blend: dict[str, TrainingRecipe] | None = None
|
||||
weight: float | None = None
|
||||
|
||||
@@ -152,9 +151,6 @@ class TrainingRecipe:
|
||||
assert self.messages is not None
|
||||
known_bindings = set(DEFAULT_BINDINGS) | set(self.bindings or {}) | {"task"}
|
||||
|
||||
missing_requirements = set(self.requires or ()) - known_bindings
|
||||
if missing_requirements:
|
||||
raise ValueError(f"TrainingRecipe requires unknown binding(s): {sorted(missing_requirements)}")
|
||||
for turn in self.messages:
|
||||
missing = self._referenced_bindings(turn) - known_bindings
|
||||
if missing:
|
||||
@@ -172,8 +168,6 @@ class TrainingRecipe:
|
||||
def _validate_blend_recipe(self) -> None:
|
||||
"""Ensure each blend component is a non-empty, weighted message recipe."""
|
||||
assert self.blend is not None
|
||||
if self.requires:
|
||||
raise ValueError("A blend recipe cannot declare requires; set it on its components.")
|
||||
if not self.blend:
|
||||
raise ValueError("Blend recipes must contain at least one component.")
|
||||
|
||||
|
||||
@@ -385,8 +385,6 @@ def _render_message_recipe(
|
||||
) -> RenderedMessages | None:
|
||||
"""Expand ``recipe.messages`` into rendered chat messages using ``bindings``."""
|
||||
assert recipe.messages is not None
|
||||
if any(bindings.get(name) is None for name in recipe.requires or ()):
|
||||
return None
|
||||
messages: list[dict[str, Any]] = []
|
||||
streams: list[str | None] = []
|
||||
target_indices: list[int] = []
|
||||
|
||||
@@ -57,14 +57,6 @@ def test_message_recipe_requires_at_least_one_target():
|
||||
)
|
||||
|
||||
|
||||
def test_message_recipe_requires_known_bindings():
|
||||
with pytest.raises(ValueError, match="requires unknown binding"):
|
||||
TrainingRecipe(
|
||||
messages=[_minimal_target_turn()],
|
||||
requires=["not_a_binding"],
|
||||
)
|
||||
|
||||
|
||||
def test_recipe_rejects_both_messages_and_blend():
|
||||
with pytest.raises(ValueError, match="only one"):
|
||||
TrainingRecipe(
|
||||
|
||||
Reference in New Issue
Block a user