Skip to content

Commit fa0c8bc

Browse files
committed
Bring back NDSegments
1 parent 95cbc6e commit fa0c8bc

File tree

1 file changed

+48
-1
lines changed
  • libs/labelbox/src/labelbox/data/serialization/ndjson

1 file changed

+48
-1
lines changed

libs/labelbox/src/labelbox/data/serialization/ndjson/objects.py

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,42 @@ def from_common(cls, segment):
426426
)
427427

428428

429+
class NDSegments(NDBaseObject):
430+
segments: List[NDSegment]
431+
432+
def to_common(self, name: str, feature_schema_id: Cuid):
433+
result = []
434+
for idx, segment in enumerate(self.segments):
435+
result.extend(
436+
segment.to_common(
437+
name=name,
438+
feature_schema_id=feature_schema_id,
439+
segment_index=idx,
440+
uuid=self.uuid,
441+
)
442+
)
443+
return result
444+
445+
@classmethod
446+
def from_common(
447+
cls,
448+
segments: List[VideoObjectAnnotation],
449+
data: GenericDataRowData,
450+
name: str,
451+
feature_schema_id: Cuid,
452+
extra: Dict[str, Any],
453+
) -> "NDSegments":
454+
segments = [NDSegment.from_common(segment) for segment in segments]
455+
456+
return cls(
457+
segments=segments,
458+
data_row=DataRow(id=data.uid, global_key=data.global_key),
459+
name=name,
460+
schema_id=feature_schema_id,
461+
uuid=extra.get("uuid"),
462+
)
463+
464+
429465
class _URIMask(BaseModel):
430466
instanceURI: str
431467
colorRGB: Tuple[int, int, int]
@@ -693,7 +729,18 @@ def from_common(
693729
obj = cls.lookup_object(annotation)
694730

695731
# if it is video segments
696-
if obj == NDVideoMasks:
732+
if obj == NDSegments:
733+
first_video_annotation = annotation[0][0]
734+
args = dict(
735+
segments=annotation,
736+
data=data,
737+
name=first_video_annotation.name,
738+
feature_schema_id=first_video_annotation.feature_schema_id,
739+
extra=first_video_annotation.extra,
740+
)
741+
742+
return obj.from_common(**args)
743+
elif obj == NDVideoMasks:
697744
return obj.from_common(annotation, data)
698745

699746
subclasses = [

0 commit comments

Comments
 (0)