From 6e3a9d9bc501e503cbad0f60f6b8fe6a920456a5 Mon Sep 17 00:00:00 2001 From: "nathdwek@laptop" Date: Mon, 21 Nov 2016 13:39:44 +0100 Subject: [PATCH] collect search results from plugins with yield --- beets/plugins.py | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/beets/plugins.py b/beets/plugins.py index 3ea15f248..2ecdb8472 100644 --- a/beets/plugins.py +++ b/beets/plugins.py @@ -351,41 +351,35 @@ def album_distance(items, album_info, mapping): def candidates(items, artist, album, va_likely): """Gets MusicBrainz candidates for an album from each plugin. """ - out = [] for plugin in find_plugins(): - out.extend(plugin.candidates(items, artist, album, va_likely)) - return out + for candidate in plugin.candidates(items, artist, album, va_likely): + yield candidate def item_candidates(item, artist, title): """Gets MusicBrainz candidates for an item from the plugins. """ - out = [] for plugin in find_plugins(): - out.extend(plugin.item_candidates(item, artist, title)) - return out + for item_candidate in plugin.item_candidates(item, artist, title): + yield item_candidate def album_for_id(album_id): """Get AlbumInfo objects for a given ID string. """ - out = [] for plugin in find_plugins(): - res = plugin.album_for_id(album_id) - if res: - out.append(res) - return out + album = plugin.album_for_id(album_id) + if album: + yield album def track_for_id(track_id): """Get TrackInfo objects for a given ID string. """ - out = [] for plugin in find_plugins(): - res = plugin.track_for_id(track_id) - if res: - out.append(res) - return out + track = plugin.track_for_id(track_id) + if track: + yield track def template_funcs():