if found: print('Found', file_name) print('Parsing character and song data') characters = {} for index, character_data in enumerate( song_pack_data['offline_song_pack_list']): character = Character(character_data) character.number = index + 1 for song_data in character_data['song_info_list']: song = Song(song_data, character.id) if config['rename_aesir'] and song.artist == 'Æsir': song.artist = config['rename_aesir_to'] character.songs.append(song) characters[character.id] = character for expansion_pack in expansion_pack_data['ExpansionPackList']: pack_info = ExpansionPackInfo(expansion_pack) for song_data in expansion_pack['SongInfoList']: song = Song(song_data) if config['rename_aesir'] and song.artist == 'Æsir': song.artist = config['rename_aesir_to'] song.expansion_pack_info = pack_info characters[song.character_id].songs.append(song) with concurrent.futures.ProcessPoolExecutor() as executor: futures = []