Пример #1
0
    def handle_reply(self, document, http, error):
        if error:
            self.network_error(http, error)
            return

        try:
            tracks = document['recordings']
        except (KeyError, TypeError):
            self.no_results_found()
            return

        if self.file_:
            metadata = self.file_.orig_metadata

            def candidates():
                for track in tracks:
                    yield metadata.compare_to_track(track,
                                                    File.comparison_weights)

            tracks = [
                result.track for result in sort_by_similarity(candidates)
            ]

        del self.search_results[:]  # Clear existing data
        self.parse_tracks(tracks)
        self.display_results()
Пример #2
0
    def handle_reply(self, document, http, error):
        if error:
            self.network_error(http, error)
            return

        try:
            tracks = document['recordings']
        except (KeyError, TypeError):
            self.no_results_found()
            return

        if self.file_:
            metadata = self.file_.orig_metadata

            def candidates():
                for track in tracks:
                    yield metadata.compare_to_track(track, File.comparison_weights)

            tracks = [result.track for result in sort_by_similarity(candidates)]

        del self.search_results[:]  # Clear existing data
        self.parse_tracks(tracks)
        self.display_results()
Пример #3
0
 def test_sort_by_similarity(self):
     results = [
         result.name for result in sort_by_similarity(self.candidates)
     ]
     self.assertEqual(results, ['b', 'c', 'd', 'a'])
Пример #4
0
 def test_sort_by_similarity(self):
     results = [result.name for result in sort_by_similarity(self.candidates)]
     self.assertEqual(results, ['b', 'c', 'd', 'a'])