@@ -514,30 +514,18 @@ def _modified_tag(self):
514514 list (self .metadata_box .tag_diff .new [self .tag ]) or ["" ]
515515 )
516516
517- def _cleanup_modified_tags (self ):
518- """Remove empty values from modified tags ."""
517+ def _modified_tags (self ):
518+ """Generate each modified tag and its non-empty values ."""
519519 for tag , values in self .modified_tags .items ():
520- self .modified_tags [tag ] = [v for v in values if v ]
521-
522- def _update_object_metadata (self , obj , modified_tags ):
523- """Update the metadata for a single object with the modified tags.
524-
525- Args:
526- obj: The object to update
527- modified_tags: Iterable of (tag, values) pairs to update
528- """
529- for tag , values in modified_tags :
530- obj .metadata [tag ] = list (values )
531- obj .update ()
520+ yield (tag , [v for v in values if v ])
532521
533522 def _update_metadata_with_modified_tags (self ):
534523 """Update the metadata of all objects with the modified tags."""
535524 self ._metadata_mutex .lock ()
536525 try :
537- self ._cleanup_modified_tags ()
538- modified_tags = self .modified_tags .items ()
539526 for obj in self .metadata_box .objects :
540- self ._update_object_metadata (obj , modified_tags )
527+ obj .metadata .update (self ._modified_tags ())
528+ obj .update ()
541529 finally :
542530 self ._metadata_mutex .unlock ()
543531
0 commit comments