@@ -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