_flush_chunk fills the union of keys present in a chunk, so a camera missing from only the first
frame of an episode is preserved. A camera missing from an entire episode is not: the column simply
never appears in that episode's parquet, while info.json still declares the feature.
Nothing enforces the invariant that every declared image feature is present as a column in every
episode's data file, and nothing warns when it is violated. The dataset writes and finalizes
cleanly and then fails, or silently drops the camera, at load time.
Two parts worth doing together:
- fill declared image-feature keys from the writer's feature set rather than from the keys observed
in the chunk, so the column exists (all-null) even for an episode with no frames from that camera;
- surface a warning when a declared camera contributes no frames to an episode.
Deferred from the LeRobot v3 image-mode PR; targeted at a patch release.
_flush_chunkfills the union of keys present in a chunk, so a camera missing from only the firstframe of an episode is preserved. A camera missing from an entire episode is not: the column simply
never appears in that episode's parquet, while
info.jsonstill declares the feature.Nothing enforces the invariant that every declared image feature is present as a column in every
episode's data file, and nothing warns when it is violated. The dataset writes and finalizes
cleanly and then fails, or silently drops the camera, at load time.
Two parts worth doing together:
in the chunk, so the column exists (all-null) even for an episode with no frames from that camera;
Deferred from the LeRobot v3 image-mode PR; targeted at a patch release.