"""Asset name transformer for Phonofile assets.""" from constants import database as db_const from util.transformers.ingestion_transformer import IngestionTransformer class PhonofileTransform(IngestionTransformer): def __init__(self, asset_list=None): super().__init__(asset_list=asset_list) def transform_audio_assets(self): """Transform the audio asset table into a dict to process.""" master_list = {} return_list = list() relid = None track_count_list = {} track_count = 0 for asset_row in self.asset_list: if relid and asset_row[db_const.source_relid] != relid: master_list[relid] = return_list.copy() return_list = list() track_count_list[relid] = track_count track_count = 0 track_count += 1 # Strange syntax is mandatory: # https://stackoverflow.com/a/26807879/6788688 relid, asset = super( PhonofileTransform, self ).transform_one_audio_asset(asset_row) return_list.append(asset) if return_list: master_list[relid] = return_list.copy() track_count_list[relid] = track_count return master_list, track_count_list def transform_cover_assets(self): """Transform the cover asset table into a dict to process.""" return_list = list() for asset_row in self.asset_list: asset = super( PhonofileTransform, self ).transform_one_cover_asset(asset_row) return_list.append(asset) return return_list