AnnotationsΒΆ
Annotation sets are immutable, dense, and aligned to one dataset snapshot. Every source ordinal has
a success, skipped, or failed row.
import signal_dataset as sds
dataset = sds.open("captures.sds")
rows = [
sds.AnnotationRecord(
source_record_id=item.id,
source_index=index,
status=sds.AnnotationStatus.SUCCESS,
values={"label": "signal"},
provenance={"annotator": "review-pipeline-v1"},
)
for index, item in enumerate(dataset.record_metadata)
]
sds.publish_annotations(
dataset,
"review-v1",
rows,
metadata={"purpose": "quality review"},
)
reopened = sds.open("captures.sds")
assert reopened.annotations["review-v1"][0].values["label"] == "signal"
assert reopened.annotations.revision is not None
Structured labels belong in values. Masks, embeddings, and other arrays belong in fields.
Publishing annotations never rewrites signal shards. A set name is permanent; publish a new name for
a revision.