Skip to content

Commit 4bbe94f

Browse files
author
gdj0nes
committed
FIX: parse metadata changes
1 parent bc25d38 commit 4bbe94f

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

labelbox/schema/data_row_metadata.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,13 @@ def parse_metadata(
194194
195195
"""
196196
parsed = []
197+
if isinstance(unparsed, dict):
198+
raise ValueError("Pass a list of dictionaries")
199+
197200
for dr in unparsed:
198201
fields = []
199202
for f in dr["fields"]:
200-
schema = self.all_fields_id_index[f["schemaId"]]
203+
schema = self.all_fields_id_index[f["schema_id"]]
201204
if schema.kind == DataRowMetadataKind.enum:
202205
continue
203206
elif schema.kind == DataRowMetadataKind.option:
@@ -209,7 +212,7 @@ def parse_metadata(
209212

210213
fields.append(field)
211214
parsed.append(
212-
DataRowMetadata(data_row_id=dr["dataRowId"], fields=fields))
215+
DataRowMetadata(data_row_id=dr["data_row_id"], fields=fields))
213216
return parsed
214217

215218
def bulk_upsert(
@@ -371,8 +374,8 @@ def _validate_delete(self, delete: DeleteDataRowMetadata):
371374
deletes.add(schema.id)
372375

373376
return _DeleteBatchDataRowMetadata(
374-
dataRowId=delete.data_row_id,
375-
schemaIds=list(delete.fields)).dict(by_alias=True)
377+
data_row_id=delete.data_row_id,
378+
schema_ids=list(delete.fields)).dict(by_alias=True)
376379

377380

378381
def _batch_items(iterable: List[Any], size: int) -> Generator[Any, None, None]:

tests/integration/test_data_row_metadata.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import pytest
44

55
from labelbox import DataRow, Dataset
6-
from labelbox.schema.data_row_metadata import DataRowMetadataField, DataRowMetadata, DeleteDataRowMetadata
6+
from labelbox.schema.data_row_metadata import DataRowMetadataField, DataRowMetadata, DeleteDataRowMetadata, \
7+
DataRowMetadataOntology
78

89
IMG_URL = "https://picsum.photos/id/829/200/300"
910
FAKE_SCHEMA_ID = "0" * 25
@@ -23,11 +24,11 @@ def mdo(client):
2324
@pytest.fixture
2425
def big_dataset(dataset: Dataset):
2526
task = dataset.create_data_rows([
26-
{
27-
"row_data": IMG_URL,
28-
"external_id": "my-image"
29-
},
30-
] * 1000)
27+
{
28+
"row_data": IMG_URL,
29+
"external_id": "my-image"
30+
},
31+
] * 1000)
3132
task.wait_till_done()
3233

3334
yield dataset
@@ -65,13 +66,20 @@ def test_get_datarow_metadata(datarow):
6566
assert len(md)
6667

6768

68-
def test_bulk_upsert_datarow_metadata(datarow, mdo):
69+
def test_bulk_upsert_datarow_metadata(datarow, mdo: DataRowMetadataOntology):
6970
assert not len(datarow.metadata["fields"])
7071
metadata = make_metadata(datarow.uid)
7172
mdo.bulk_upsert([metadata])
7273
assert len(datarow.metadata["fields"])
7374

7475

76+
def test_parse_upsert_datarow_metadata(datarow, mdo: DataRowMetadataOntology):
77+
assert not len(datarow.metadata["fields"])
78+
metadata = make_metadata(datarow.uid)
79+
mdo.bulk_upsert([metadata])
80+
assert mdo.parse_metadata([datarow.metadata])
81+
82+
7583
@pytest.mark.slow
7684
def test_large_bulk_upsert_datarow_metadata(big_dataset, mdo):
7785
metadata = []

0 commit comments

Comments
 (0)