Skip to content

dataforge: contracts (identity, paths, schema, writing, transports) - #111

Open
pablo-rerun wants to merge 1 commit into
mainfrom
grill-dataforge-handoff
Open

dataforge: contracts (identity, paths, schema, writing, transports)#111
pablo-rerun wants to merge 1 commit into
mainfrom
grill-dataforge-handoff

Conversation

@pablo-rerun

Copy link
Copy Markdown
Collaborator

First step of the dataforge work plan (design report in packages/dataforge/docs): the stdlib-only contracts, unit-tested without data.

  • identity.pySequenceIdentity (borrowed from simplecv's exoego sequence_identity.py): one value derives sequence_key, recording_id, and — per the "id = filename = key = segment" rule — the rrd filename stem.
  • paths.py — layer-major on-disk layout data/dataforge/rrd/<layer>/<recording_id>.rrd, raw tree data/raw/<dataset>/…; roots overridable via DATAFORGE_OUTPUT_ROOT / DATAFORGE_RAW_ROOT (defaults package-local; batch runs point them at the NAS).
  • schema.py — the exoego:v2 conventions as code: video_time timeline, /world/rig_NN/cam_MM/pinhole/video, the (until now reserved) /world/rig_NN/imu_MM/{gyro,accel}, property:capture:* keys.
  • writing.py — atomic tmp → os.replace rrd publication (pattern from arkitscenes-download), should_skip (exists = done, --force).
  • transports.pylocal_verify (robocap's download is verify-only) plus typed NotImplementedError stubs for hf_fetch/http_fetch/gdrive_fetch (land with HOCap).

All dev gates green: pixi run -e dataforge-dev {tests,lint,typecheck,deadcode} (22 tests).

Next PR in the stack: the robocap end-to-end slice (convert one segment: 6-cam video + Kalibr fisheye62 calib + dev0 IMU from the SQLite .db, register + view).

Stdlib-only identity (SequenceIdentity: id = recording_id = filename) and
layer-major path layout with overridable roots; exoego:v2 entity-path and
video_time timeline constants as code; atomic tmp -> os.replace rrd
publication (exists = done, --force); local_verify transport with typed
stubs for the HOCap-era fetchers. Unit-tested without data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants