From cca8837863c743c5b690de320c7f7d70af5a4174 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Sun, 25 Mar 2018 16:32:17 -0700 Subject: [PATCH] Move helpers.select_generator to PDB.sql_select. --- etiquette/helpers.py | 13 ------------- etiquette/objects.py | 6 ++---- etiquette/photodb.py | 16 +++++++++++++++- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/etiquette/helpers.py b/etiquette/helpers.py index 7829300..8d908a6 100644 --- a/etiquette/helpers.py +++ b/etiquette/helpers.py @@ -343,19 +343,6 @@ def seconds_to_hms(seconds): hms = ':'.join('%02d' % part for part in parts) return hms -def select_generator(sql, query, bindings=None): - ''' - Perform the query, and yield the results. - ''' - bindings = bindings or [] - cursor = sql.cursor() - cursor.execute(query, bindings) - while True: - fetch = cursor.fetchone() - if fetch is None: - break - yield fetch - def sql_listify(items): ''' Given a list of strings, return a string in the form of an SQL list. diff --git a/etiquette/objects.py b/etiquette/objects.py index 6f44c9c..211b543 100644 --- a/etiquette/objects.py +++ b/etiquette/objects.py @@ -448,8 +448,7 @@ class Album(ObjectBase, GroupableMixin): def get_photos(self): photos = [] - generator = helpers.select_generator( - self.photodb.sql, + generator = self.photodb.sql_select( 'SELECT photoid FROM album_photo_rel WHERE albumid == ?', [self.id] ) @@ -874,8 +873,7 @@ class Photo(ObjectBase): ''' Return the tags assigned to this Photo. ''' - generator = helpers.select_generator( - self.photodb.sql, + generator = self.photodb.sql_select( 'SELECT tagid FROM photo_tag_rel WHERE photoid == ?', [self.id] ) diff --git a/etiquette/photodb.py b/etiquette/photodb.py index 99211f2..9a333ab 100644 --- a/etiquette/photodb.py +++ b/etiquette/photodb.py @@ -632,7 +632,7 @@ class PDBPhotoMixin: #cur = self.sql.cursor() #cur.execute('EXPLAIN QUERY PLAN ' + query, bindings) #print('\n'.join(str(x) for x in cur.fetchall())) - generator = helpers.select_generator(self.sql, query, bindings) + generator = self.sql_select(query, bindings) photos_received = 0 for row in generator: photo = objects.Photo(self, row) @@ -758,6 +758,20 @@ class PDBSQLMixin: if commit: self.commit() + def sql_select(self, query, bindings=None): + cur = self.sql.cursor() + cur.execute(query, bindings) + while True: + fetch = cur.fetchone() + if fetch is None: + break + yield fetch + + def sql_select_one(self, query, bindings=None): + cur = self.sql.cursor() + cur.execute(query, bindings) + return cur.fetchone() + def sql_update(self, table, pairs, where_key, *, commit=False): cur = self.sql.cursor()