]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/simadb.py
Use set-comprehension in simadb
[mpd-sima.git] / sima / lib / simadb.py
index a3e55703641b480d1c237ac39b5137f70d2e46dd..d060da32a0af4be6631e45c6f1237082867da44e 100644 (file)
@@ -42,20 +42,17 @@ class SimaDBError(Exception):
     """
     Exceptions.
     """
-    pass
 
 
 class SimaDBAccessError(SimaDBError):
     """Error on accessing DB file"""
-    pass
 
 
 class SimaDBNoFile(SimaDBError):
     """No DB file present"""
-    pass
 
 
-class SimaDB(object):
+class SimaDB:
     "SQLite management"
 
     def __init__(self, db_path=None):
@@ -439,14 +436,14 @@ class SimaDB(object):
             connection = with_connection
         else:
             connection = self.get_database_connection()
-        artists_ids = set([row[0] for row in connection.execute(
-            "SELECT id FROM artists")])
-        artist_2_artist_ids = set([row[0] for row in connection.execute(
-            "SELECT artist FROM black_list")] +
-            [row[0] for row in connection.execute(
-            "SELECT artist FROM albums")] +
-            [row[0] for row in connection.execute(
-            "SELECT artist FROM tracks")])
+        artists_ids = {row[0] for row in connection.execute(
+            "SELECT id FROM artists")}
+        artist_2_artist_ids = {row[0] for row in connection.execute(
+            "SELECT artist FROM black_list")} | {
+                row[0] for row in connection.execute(
+                    "SELECT artist FROM albums")} | {
+                        row[0] for row in connection.execute(
+                            "SELECT artist FROM tracks")}
         orphans = [(orphan,) for orphan in artists_ids - artist_2_artist_ids]
         connection.executemany('DELETE FROM artists WHERE id = (?);', orphans)
         if not with_connection:
@@ -459,14 +456,14 @@ class SimaDB(object):
             connection = with_connection
         else:
             connection = self.get_database_connection()
-        orphan_black_ids = set([row[0] for row in connection.execute(
+        orphan_black_ids = {row[0] for row in connection.execute(
             """SELECT albums.id FROM albums
             LEFT JOIN black_list ON albums.id = black_list.album
-            WHERE ( black_list.album IS NULL )""")])
-        orphan_tracks_ids = set([row[0] for row in connection.execute(
+            WHERE ( black_list.album IS NULL )""")}
+        orphan_tracks_ids = {row[0] for row in connection.execute(
             """SELECT albums.id FROM albums
             LEFT JOIN tracks ON albums.id = tracks.album
-            WHERE tracks.album IS NULL""")])
+            WHERE tracks.album IS NULL""")}
         orphans = [(orphan,) for orphan in orphan_black_ids & orphan_tracks_ids]
         connection.executemany('DELETE FROM albums WHERE id = (?);', orphans)
         if not with_connection:
@@ -479,14 +476,14 @@ class SimaDB(object):
             connection = with_connection
         else:
             connection = self.get_database_connection()
-        hist_orphan_ids = set([row[0] for row in connection.execute(
+        hist_orphan_ids = {row[0] for row in connection.execute(
             """SELECT tracks.id FROM tracks
             LEFT JOIN history ON tracks.id = history.track
-            WHERE history.track IS NULL""")])
-        black_list_orphan_ids = set([row[0] for row in connection.execute(
+            WHERE history.track IS NULL""")}
+        black_list_orphan_ids = {row[0] for row in connection.execute(
             """SELECT tracks.id FROM tracks
             LEFT JOIN black_list ON tracks.id = black_list.track
-            WHERE black_list.track IS NULL""")])
+            WHERE black_list.track IS NULL""")}
         orphans = [(orphan,) for orphan in hist_orphan_ids & black_list_orphan_ids]
         connection.executemany('DELETE FROM tracks WHERE id = (?);', orphans)
         if not with_connection: