mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-28 20:26:05 +00:00
Handle resuming empty local datasets (#3859)
Co-authored-by: Steven Palma <imstevenpmwork@ieee.org>
This commit is contained in:
@@ -188,8 +188,8 @@ class LeRobotDatasetMetadata:
|
|||||||
def _load_metadata(self):
|
def _load_metadata(self):
|
||||||
self.info = load_info(self.root)
|
self.info = load_info(self.root)
|
||||||
check_version_compatibility(self.repo_id, self._version, CODEBASE_VERSION)
|
check_version_compatibility(self.repo_id, self._version, CODEBASE_VERSION)
|
||||||
self.tasks = load_tasks(self.root)
|
self.tasks = load_tasks(self.root) if self.total_tasks > 0 else None
|
||||||
self.episodes = load_episodes(self.root)
|
self.episodes = load_episodes(self.root) if self.total_episodes > 0 else None
|
||||||
self.stats = load_stats(self.root)
|
self.stats = load_stats(self.root)
|
||||||
|
|
||||||
def ensure_readable(self) -> None:
|
def ensure_readable(self) -> None:
|
||||||
|
|||||||
@@ -482,6 +482,20 @@ def test_add_frame_works_in_write_mode(tmp_path):
|
|||||||
# ── Resume mode ──────────────────────────────────────────────────────
|
# ── Resume mode ──────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|
||||||
|
def test_resume_freshly_created_empty_dataset(tmp_path):
|
||||||
|
"""resume() accepts a local dataset created before any episode was recorded."""
|
||||||
|
root = tmp_path / "resume_empty_ds"
|
||||||
|
LeRobotDataset.create(repo_id=DUMMY_REPO_ID, fps=DEFAULT_FPS, features=SIMPLE_FEATURES, root=root)
|
||||||
|
|
||||||
|
resumed = LeRobotDataset.resume(repo_id=DUMMY_REPO_ID, root=root)
|
||||||
|
|
||||||
|
assert isinstance(resumed.writer, DatasetWriter)
|
||||||
|
assert resumed.meta.total_episodes == 0
|
||||||
|
assert resumed.meta.total_frames == 0
|
||||||
|
assert resumed.meta.tasks is None
|
||||||
|
assert resumed.meta.episodes is None
|
||||||
|
|
||||||
|
|
||||||
def test_resume_creates_writer(tmp_path):
|
def test_resume_creates_writer(tmp_path):
|
||||||
"""After resume(), writer is a DatasetWriter."""
|
"""After resume(), writer is a DatasetWriter."""
|
||||||
root = tmp_path / "resume_ds"
|
root = tmp_path / "resume_ds"
|
||||||
|
|||||||
Reference in New Issue
Block a user