diff --git a/docs/changelog.rst b/docs/changelog.rst index 0cc145fc..36dbcc1e 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -36,7 +36,7 @@ v0.20.0 (UNRELEASED) - When seeking in paused state, do not change to playing state. (Fixed :issue:`939`) -- Add :meth:`mopidy.core.LibraryController.list_distinct` for getting unique +- Add :meth:`mopidy.core.LibraryController.get_distinct` for getting unique values for a given field. (Fixes: :issue:`913`) **Commands** @@ -102,7 +102,7 @@ v0.20.0 (UNRELEASED) :confval:`mpd/command_blacklist`. - Switch the ``list`` command over to using - :meth:`mopidy.core.LibraryController.list_distinct`. (Fixes: :issue:`913`) + :meth:`mopidy.core.LibraryController.get_distinct`. (Fixes: :issue:`913`) **HTTP frontend** diff --git a/mopidy/backend.py b/mopidy/backend.py index 38d4c5db..f7808ac8 100644 --- a/mopidy/backend.py +++ b/mopidy/backend.py @@ -92,9 +92,9 @@ class LibraryProvider(object): """ return [] - def list_distinct(self, field, query=None): + def get_distinct(self, field, query=None): """ - See :meth:`mopidy.core.LibraryController.list_distinct`. + See :meth:`mopidy.core.LibraryController.get_distinct`. *MAY be implemented by subclass.* diff --git a/mopidy/core/library.py b/mopidy/core/library.py index 4ccfd657..5937b2c0 100644 --- a/mopidy/core/library.py +++ b/mopidy/core/library.py @@ -72,7 +72,7 @@ class LibraryController(object): return [] return backend.library.browse(uri).get() - def list_distinct(self, field, query=None): + def get_distinct(self, field, query=None): """ List distinct values for a given field from the library. @@ -86,7 +86,7 @@ class LibraryController(object): :method:`search` for details about the query format. :rtype: set of values corresponding to the requested field type. """ - futures = [b.library.list_distinct(field, query) + futures = [b.library.get_distinct(field, query) for b in self.backends.with_library.values()] result = set() for r in pykka.get_all(futures): diff --git a/mopidy/local/__init__.py b/mopidy/local/__init__.py index 3099e240..1587b63a 100644 --- a/mopidy/local/__init__.py +++ b/mopidy/local/__init__.py @@ -89,7 +89,7 @@ class Library(object): """ raise NotImplementedError - def list_distinct(self, field, query=None): + def get_distinct(self, field, query=None): """ List distinct values for a given field from the library. diff --git a/mopidy/local/json.py b/mopidy/local/json.py index dcf8ff9b..aa16a6df 100644 --- a/mopidy/local/json.py +++ b/mopidy/local/json.py @@ -155,7 +155,7 @@ class JsonLibrary(local.Library): except KeyError: return [] - def list_distinct(self, field, query=None): + def get_distinct(self, field, query=None): if field == 'artist': def distinct(track): return {a.name for a in track.artists} diff --git a/mopidy/local/library.py b/mopidy/local/library.py index 8a6c2a8a..90a54770 100644 --- a/mopidy/local/library.py +++ b/mopidy/local/library.py @@ -23,10 +23,10 @@ class LocalLibraryProvider(backend.LibraryProvider): return [] return self._library.browse(uri) - def list_distinct(self, field, query=None): + def get_distinct(self, field, query=None): if not self._library: return set() - return self._library.list_distinct(field, query) + return self._library.get_distinct(field, query) def refresh(self, uri=None): if not self._library: diff --git a/mopidy/mpd/protocol/music_db.py b/mopidy/mpd/protocol/music_db.py index 04ad7d85..62147b7d 100644 --- a/mopidy/mpd/protocol/music_db.py +++ b/mopidy/mpd/protocol/music_db.py @@ -277,7 +277,7 @@ def list_(context, *args): return name = _LIST_NAME_MAPPING[field] - result = context.core.library.list_distinct(field, query) + result = context.core.library.get_distinct(field, query) return [(name, value) for value in result.get()] diff --git a/tests/dummy_backend.py b/tests/dummy_backend.py index a20c5686..9c5a8c0c 100644 --- a/tests/dummy_backend.py +++ b/tests/dummy_backend.py @@ -33,7 +33,7 @@ class DummyLibraryProvider(backend.LibraryProvider): def __init__(self, *args, **kwargs): super(DummyLibraryProvider, self).__init__(*args, **kwargs) self.dummy_library = [] - self.dummy_list_distinct_result = {} + self.dummy_get_distinct_result = {} self.dummy_browse_result = {} self.dummy_find_exact_result = SearchResult() self.dummy_search_result = SearchResult() @@ -41,8 +41,8 @@ class DummyLibraryProvider(backend.LibraryProvider): def browse(self, path): return self.dummy_browse_result.get(path, []) - def list_distinct(self, field, query=None): - return self.dummy_list_distinct_result.get(field, set()) + def get_distinct(self, field, query=None): + return self.dummy_get_distinct_result.get(field, set()) def find_exact(self, **query): return self.dummy_find_exact_result diff --git a/tests/mpd/protocol/test_music_db.py b/tests/mpd/protocol/test_music_db.py index 30ecf27c..613467ed 100644 --- a/tests/mpd/protocol/test_music_db.py +++ b/tests/mpd/protocol/test_music_db.py @@ -613,7 +613,7 @@ class MusicDatabaseFindTest(protocol.BaseTestCase): class MusicDatabaseListTest(protocol.BaseTestCase): def test_list(self): - self.backend.library.dummy_list_distinct_result = { + self.backend.library.dummy_get_distinct_result = { 'artist': set(['A Artist'])} self.send_request('list "artist" "artist" "foo"') @@ -888,7 +888,7 @@ class MusicDatabaseListTest(protocol.BaseTestCase): self.assertInResponse('OK') def test_list_album_with_artist_name(self): - self.backend.library.dummy_list_distinct_result = { + self.backend.library.dummy_get_distinct_result = { 'album': set(['foo'])} self.send_request('list "album" "anartist"')