"""Utility Function(s) for performers.""" from collections import defaultdict from backend.models.performer_persister import PerformerPersister def copy_tracks_performers(source_dest_tuid_list): """Copy performers from source tracks to destination tracks. Args: source_dest_tuid_list (list): List of tuples with source to dest tuid. """ source_tuids = [ source_tuid for source_tuid, dest_tuid in source_dest_tuid_list ] source_performers = PerformerPersister.get_performers_by_tuids( source_tuids).message['items'] # Group performers by source tuid. source_tuid_performers_map = defaultdict(list) for performer in source_performers: tuid = performer.pop('tuid') source_tuid_performers_map[tuid].append(performer) for source_tuid, dest_tuid in source_dest_tuid_list: source_performers = source_tuid_performers_map[source_tuid] PerformerPersister.sync_track_performers(dest_tuid, source_performers)