From 167e22ba51dcc89c900dabfc3943850ac8a636ff Mon Sep 17 00:00:00 2001 From: Steven Palma Date: Tue, 28 Jul 2026 14:06:28 +0200 Subject: [PATCH] feat(record): add `--dataset.no_stamp` to opt out of repo_id timestamping (#4190) * feat(record): add `--dataset.no_stamp` to opt out of repo_id timestamping stamp_repo_id() unconditionally appended a date-time tag to repo_id for every new (non-resume) dataset, so users managing their own versioned repo names (e.g. for a later lerobot-edit-dataset merge) could not opt out. Add a no_stamp field to DatasetRecordConfig and make stamp_repo_id() a no-op when it is set. The flag covers both lerobot-record and lerobot-rollout since they share this config, and no call-site changes are needed. Fixes #3722. * chore(tests): delete dataset config test --------- Co-authored-by: Philipp Sinitsin --- src/lerobot/configs/dataset.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lerobot/configs/dataset.py b/src/lerobot/configs/dataset.py index 7d30ca038..ac4a872d3 100644 --- a/src/lerobot/configs/dataset.py +++ b/src/lerobot/configs/dataset.py @@ -71,13 +71,19 @@ class DatasetRecordConfig: # Number of threads per encoder instance. None = auto (codec default). # Lower values reduce CPU usage, maps to 'lp' (via svtav1-params) for libsvtav1 and 'threads' for h264/hevc.. encoder_threads: int | None = None + # Skip appending the date-time tag to repo_id, keeping the user-provided name as-is + # (e.g. self-managed versioned names intended for a later `lerobot-edit-dataset merge`). + no_stamp: bool = False def stamp_repo_id(self) -> None: """Append a date-time tag to ``repo_id`` so each recording session gets a unique name. Must be called explicitly at dataset *creation* time — not on resume, where the existing ``repo_id`` (already stamped) must be preserved. + No-op when ``no_stamp`` is set, preserving a user-managed ``repo_id``. """ + if self.no_stamp: + return if self.repo_id: timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") self.repo_id = f"{self.repo_id}_{timestamp}"