Remove old SQL_ constants. Use the dicts.

This commit is contained in:
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_dictify = lambda columns: {key:index for (index, key) in enumerate(columns)}
SQL_INDEX = {key: _sql_dictify(value) for (key, value) in SQL_COLUMNS.items()} 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 = [ ALLOWED_ORDERBY_COLUMNS = [
'extension', 'extension',

View file

@ -10,7 +10,6 @@ from . import helpers
from voussoirkit import bytestring from voussoirkit import bytestring
from voussoirkit import pathclass from voussoirkit import pathclass
from voussoirkit import spinal from voussoirkit import spinal
from voussoirkit import sqlhelpers
class ObjectBase: class ObjectBase:
@ -211,13 +210,13 @@ class GroupableMixin:
class Album(ObjectBase, GroupableMixin): class Album(ObjectBase, GroupableMixin):
group_sql_index = constants.SQL_ALBUMGROUP
group_table = 'album_group_rel' group_table = 'album_group_rel'
group_sql_index = constants.SQL_INDEX[group_table]
def __init__(self, photodb, db_row): def __init__(self, photodb, db_row):
super().__init__(photodb) super().__init__(photodb)
if isinstance(db_row, (list, tuple)): 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.id = db_row['id']
self.title = db_row['title'] or '' self.title = db_row['title'] or ''
@ -481,7 +480,7 @@ class Bookmark(ObjectBase):
def __init__(self, photodb, db_row): def __init__(self, photodb, db_row):
super().__init__(photodb) super().__init__(photodb)
if isinstance(db_row, (list, tuple)): 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.id = db_row['id']
self.title = db_row['title'] self.title = db_row['title']
@ -537,7 +536,7 @@ class Photo(ObjectBase):
def __init__(self, photodb, db_row): def __init__(self, photodb, db_row):
super().__init__(photodb) super().__init__(photodb)
if isinstance(db_row, (list, tuple)): 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_filepath = helpers.remove_path_badchars(db_row['filepath'], allowed=':\\/')
self.real_path = pathclass.Path(self.real_filepath) 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. A Tag, which can be applied to Photos for organization.
''' '''
group_sql_index = constants.SQL_TAGGROUP
group_table = 'tag_group_rel' group_table = 'tag_group_rel'
group_sql_index = constants.SQL_INDEX[group_table]
def __init__(self, photodb, db_row): def __init__(self, photodb, db_row):
super().__init__(photodb) super().__init__(photodb)
if isinstance(db_row, (list, tuple)): 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.id = db_row['id']
self.name = db_row['name'] self.name = db_row['name']
self.description = db_row['description'] or '' self.description = db_row['description'] or ''
@ -1318,7 +1317,7 @@ class User(ObjectBase):
def __init__(self, photodb, db_row): def __init__(self, photodb, db_row):
super().__init__(photodb) super().__init__(photodb)
if isinstance(db_row, (list, tuple)): 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.id = db_row['id']
self.username = db_row['username'] self.username = db_row['username']
self.created = db_row['created'] self.created = db_row['created']