Remove old SQL_ constants. Use the dicts.

master
voussoir 2018-02-16 20:40:58 -08:00
parent a8ead9c0c9
commit e5a316ff9c
2 changed files with 7 additions and 41 deletions

View File

@ -144,39 +144,6 @@ for statement in DB_INIT.split(';'):
_sql_dictify = lambda columns: {key:index for (index, key) in enumerate(columns)}
SQL_INDEX = {key: _sql_dictify(value) for (key, value) in SQL_COLUMNS.items()}
def _extract_column_names(table):
statement = DB_INIT.split('CREATE TABLE IF NOT EXISTS %s(' % table)[1]
statement = statement.split(');')[0]
statement = statement.replace('\n', ' ')
columns = statement.split(',')
columns = [column.strip().split(' ')[0] for column in columns]
return columns
SQL_LASTID_COLUMNS = _extract_column_names('id_numbers')
SQL_ALBUM_DIRECTORY_COLUMNS = _extract_column_names('album_associated_directories')
SQL_ALBUM_COLUMNS = _extract_column_names('albums')
SQL_BOOKMARK_COLUMNS = _extract_column_names('bookmarks')
SQL_PHOTO_COLUMNS = _extract_column_names('photos')
SQL_TAG_COLUMNS = _extract_column_names('tags')
SQL_SYN_COLUMNS = _extract_column_names('tag_synonyms')
SQL_ALBUMGROUP_COLUMNS = _extract_column_names('album_group_rel')
SQL_ALBUMPHOTO_COLUMNS = _extract_column_names('album_photo_rel')
SQL_PHOTOTAG_COLUMNS = _extract_column_names('photo_tag_rel')
SQL_TAGGROUP_COLUMNS = _extract_column_names('tag_group_rel')
SQL_USER_COLUMNS = _extract_column_names('users')
SQL_ALBUM = _sql_dictify(SQL_ALBUM_COLUMNS)
SQL_ALBUM_DIRECTORY = _sql_dictify(SQL_ALBUM_DIRECTORY_COLUMNS)
SQL_ALBUMGROUP = _sql_dictify(SQL_ALBUMGROUP_COLUMNS)
SQL_BOOKMARK = _sql_dictify(SQL_BOOKMARK_COLUMNS)
SQL_ALBUMPHOTO = _sql_dictify(SQL_ALBUMPHOTO_COLUMNS)
SQL_LASTID = _sql_dictify(SQL_LASTID_COLUMNS)
SQL_PHOTO = _sql_dictify(SQL_PHOTO_COLUMNS)
SQL_PHOTOTAG = _sql_dictify(SQL_PHOTOTAG_COLUMNS)
SQL_SYN = _sql_dictify(SQL_SYN_COLUMNS)
SQL_TAG = _sql_dictify(SQL_TAG_COLUMNS)
SQL_TAGGROUP = _sql_dictify(SQL_TAGGROUP_COLUMNS)
SQL_USER = _sql_dictify(SQL_USER_COLUMNS)
ALLOWED_ORDERBY_COLUMNS = [
'extension',

View File

@ -10,7 +10,6 @@ from . import helpers
from voussoirkit import bytestring
from voussoirkit import pathclass
from voussoirkit import spinal
from voussoirkit import sqlhelpers
class ObjectBase:
@ -211,13 +210,13 @@ class GroupableMixin:
class Album(ObjectBase, GroupableMixin):
group_sql_index = constants.SQL_ALBUMGROUP
group_table = 'album_group_rel'
group_sql_index = constants.SQL_INDEX[group_table]
def __init__(self, photodb, db_row):
super().__init__(photodb)
if isinstance(db_row, (list, tuple)):
db_row = dict(zip(constants.SQL_ALBUM_COLUMNS, db_row))
db_row = dict(zip(constants.SQL_COLUMNS['albums'], db_row))
self.id = db_row['id']
self.title = db_row['title'] or ''
@ -481,7 +480,7 @@ class Bookmark(ObjectBase):
def __init__(self, photodb, db_row):
super().__init__(photodb)
if isinstance(db_row, (list, tuple)):
db_row = dict(zip(constants.SQL_BOOKMARK_COLUMNS, db_row))
db_row = dict(zip(constants.SQL_COLUMNS['bookmarks'], db_row))
self.id = db_row['id']
self.title = db_row['title']
@ -537,7 +536,7 @@ class Photo(ObjectBase):
def __init__(self, photodb, db_row):
super().__init__(photodb)
if isinstance(db_row, (list, tuple)):
db_row = dict(zip(constants.SQL_PHOTO_COLUMNS, db_row))
db_row = dict(zip(constants.SQL_COLUMNS['photos'], db_row))
self.real_filepath = helpers.remove_path_badchars(db_row['filepath'], allowed=':\\/')
self.real_path = pathclass.Path(self.real_filepath)
@ -1041,13 +1040,13 @@ class Tag(ObjectBase, GroupableMixin):
'''
A Tag, which can be applied to Photos for organization.
'''
group_sql_index = constants.SQL_TAGGROUP
group_table = 'tag_group_rel'
group_sql_index = constants.SQL_INDEX[group_table]
def __init__(self, photodb, db_row):
super().__init__(photodb)
if isinstance(db_row, (list, tuple)):
db_row = dict(zip(constants.SQL_TAG_COLUMNS, db_row))
db_row = dict(zip(constants.SQL_COLUMNS['tags'], db_row))
self.id = db_row['id']
self.name = db_row['name']
self.description = db_row['description'] or ''
@ -1318,7 +1317,7 @@ class User(ObjectBase):
def __init__(self, photodb, db_row):
super().__init__(photodb)
if isinstance(db_row, (list, tuple)):
db_row = dict(zip(constants.SQL_USER_COLUMNS, db_row))
db_row = dict(zip(constants.SQL_COLUMNS['users'], db_row))
self.id = db_row['id']
self.username = db_row['username']
self.created = db_row['created']