Skip to content

Commit 968a44c

Browse files
committed
feat(LAB-3532): remove special key asset_labeling_metadata, update add_metadata and set_metadata
1 parent 686239b commit 968a44c

1 file changed

Lines changed: 21 additions & 26 deletions

File tree

src/kili/entrypoints/mutations/asset/__init__.py

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -411,14 +411,14 @@ def generate_variables(batch: Dict) -> Dict:
411411
@typechecked
412412
def add_metadata(
413413
self,
414-
asset_labeling_metadata: List[Dict[str, Union[str, int, float]]],
414+
json_metadata: List[Dict[str, Union[str, int, float]]],
415415
asset_ids: List[str],
416416
project_id: str,
417417
) -> List[Dict[Literal["id"], str]]:
418418
"""Add metadata to assets without overriding existing metadata.
419419
420420
Args:
421-
asset_labeling_metadata: List of metadata dictionaries to add to each asset.
421+
json_metadata: List of metadata dictionaries to add to each asset.
422422
Each dictionary contains key/value pairs to be added to the asset's metadata.
423423
asset_ids: The asset IDs to modify.
424424
project_id: The project ID.
@@ -428,16 +428,15 @@ def add_metadata(
428428
429429
Examples:
430430
>>> kili.add_metadata(
431-
asset_labeling_metadata=[
431+
json_metadata=[
432432
{"key1": "value1", "key2": "value2"},
433433
{"key3": "value3"}
434434
],
435435
asset_ids=["ckg22d81r0jrg0885unmuswj8", "ckg22d81s0jrh0885pdxfd03n"],
436+
project_id="cm92to3cx012u7l0w6kij9qvx"
436437
)
437438
"""
438-
if is_empty_list_with_warning(
439-
"add_metadata", "asset_labeling_metadata", asset_labeling_metadata
440-
):
439+
if is_empty_list_with_warning("add_metadata", "json_metadata", json_metadata):
441440
return []
442441

443442
assets = self.kili_api_gateway.list_assets(
@@ -451,17 +450,11 @@ def add_metadata(
451450
json_metadatas = []
452451
for i, asset in enumerate(assets):
453452
current_metadata = asset.get("jsonMetadata", {}) if asset.get("jsonMetadata") else {}
453+
new_metadata = json_metadata[i] if i < len(json_metadata) else {}
454454

455-
current_labeling_metadata = current_metadata.get("assetLabelingMetadata", {})
456-
457-
new_metadata = asset_labeling_metadata[i] if i < len(asset_labeling_metadata) else {}
458-
459-
current_labeling_metadata.update(new_metadata)
455+
current_metadata.update(new_metadata)
460456

461-
updated_metadata = current_metadata.copy()
462-
updated_metadata["assetLabelingMetadata"] = current_labeling_metadata
463-
464-
json_metadatas.append(updated_metadata)
457+
json_metadatas.append(current_metadata)
465458

466459
return self.update_properties_in_assets(
467460
asset_ids=asset_ids,
@@ -471,14 +464,14 @@ def add_metadata(
471464
@typechecked
472465
def set_metadata(
473466
self,
474-
asset_labeling_metadata: List[Dict[str, Union[str, int, float]]],
467+
json_metadata: List[Dict[str, Union[str, int, float]]],
475468
asset_ids: List[str],
476469
project_id: str,
477470
) -> List[Dict[Literal["id"], str]]:
478-
"""Set metadata on assets, replacing any existing assetLabelingMetadata.
471+
"""Set metadata on assets, replacing any existing metadata.
479472
480473
Args:
481-
asset_labeling_metadata: List of metadata dictionaries to set on each asset.
474+
json_metadata: List of metadata dictionaries to set on each asset.
482475
Each dictionary contains key/value pairs to be set as the asset's metadata.
483476
asset_ids: The asset IDs to modify.
484477
project_id: The project ID.
@@ -488,16 +481,15 @@ def set_metadata(
488481
489482
Examples:
490483
>>> kili.set_metadata(
491-
asset_labeling_metadata=[
484+
json_metadata=[
492485
{"key1": "value1", "key2": "value2"},
493486
{"key3": "value3"}
494487
],
495488
asset_ids=["ckg22d81r0jrg0885unmuswj8", "ckg22d81s0jrh0885pdxfd03n"],
489+
project_id="cm92to3cx012u7l0w6kij9qvx"
496490
)
497491
"""
498-
if is_empty_list_with_warning(
499-
"set_metadata", "asset_labeling_metadata", asset_labeling_metadata
500-
):
492+
if is_empty_list_with_warning("set_metadata", "json_metadata", json_metadata):
501493
return []
502494

503495
assets = self.kili_api_gateway.list_assets(
@@ -511,13 +503,16 @@ def set_metadata(
511503
json_metadatas = []
512504
for i, asset in enumerate(assets):
513505
current_metadata = asset.get("jsonMetadata", {}) if asset.get("jsonMetadata") else {}
506+
new_metadata = json_metadata[i] if i < len(json_metadata) else {}
514507

515-
new_metadata = asset_labeling_metadata[i] if i < len(asset_labeling_metadata) else {}
508+
special_keys = ["text", "imageUrl", "url", "processingParameters"]
509+
preserved_metadata = {
510+
k: current_metadata[k] for k in special_keys if k in current_metadata
511+
}
516512

517-
updated_metadata = current_metadata.copy()
518-
updated_metadata["assetLabelingMetadata"] = new_metadata
513+
preserved_metadata.update(new_metadata)
519514

520-
json_metadatas.append(updated_metadata)
515+
json_metadatas.append(preserved_metadata)
521516

522517
return self.update_properties_in_assets(
523518
asset_ids=asset_ids,

0 commit comments

Comments
 (0)