From 6a0e80a5c3efcc6103afea143559b6cc213170c4 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Tue, 1 Jan 2013 16:56:34 +0100 Subject: [PATCH] core: Update BaseLibraryProvider to not require refresh, search or find_exact. These methods may now return None, and the core code has been updated to filter out missing SearchResults. --- mopidy/backends/base.py | 12 ++++++------ mopidy/backends/stream/actor.py | 9 --------- mopidy/core/library.py | 4 ++-- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/mopidy/backends/base.py b/mopidy/backends/base.py index 8250a24c..f49aa89b 100644 --- a/mopidy/backends/base.py +++ b/mopidy/backends/base.py @@ -57,9 +57,9 @@ class BaseLibraryProvider(object): """ See :meth:`mopidy.core.LibraryController.find_exact`. - *MUST be implemented by subclass.* + *MAY be implemented by subclass.* """ - raise NotImplementedError + pass def lookup(self, uri): """ @@ -73,17 +73,17 @@ class BaseLibraryProvider(object): """ See :meth:`mopidy.core.LibraryController.refresh`. - *MUST be implemented by subclass.* + *MAY be implemented by subclass.* """ - raise NotImplementedError + pass def search(self, **query): """ See :meth:`mopidy.core.LibraryController.search`. - *MUST be implemented by subclass.* + *MAY be implemented by subclass.* """ - raise NotImplementedError + pass class BasePlaybackProvider(object): diff --git a/mopidy/backends/stream/actor.py b/mopidy/backends/stream/actor.py index 7fc28711..cdf777af 100644 --- a/mopidy/backends/stream/actor.py +++ b/mopidy/backends/stream/actor.py @@ -46,12 +46,3 @@ class StreamLibraryProvider(base.BaseLibraryProvider): # Note that we would only want the stream metadata at this stage, # not the currently playing track's. return [Track(uri=uri, name=uri)] - - def find_exact(self, **query): - return SearchResult() - - def search(self, **query): - return SearchResult() - - def refresh(self, uri=None): - pass diff --git a/mopidy/core/library.py b/mopidy/core/library.py index 39a1e99c..e4be7ce8 100644 --- a/mopidy/core/library.py +++ b/mopidy/core/library.py @@ -41,7 +41,7 @@ class LibraryController(object): query = query or kwargs futures = [ b.library.find_exact(**query) for b in self.backends.with_library] - return pykka.get_all(futures) + return [result for result in pykka.get_all(futures) if result] def lookup(self, uri): """ @@ -101,4 +101,4 @@ class LibraryController(object): query = query or kwargs futures = [ b.library.search(**query) for b in self.backends.with_library] - return pykka.get_all(futures) + return [result for result in pykka.get_all(futures) if result]