ConstError in tiramisu/error.py

storage_type is now unique
rename _const => _NameSpace
can change storage's options in set_storage

storage :
add Setting object in storage
rename enumerate to list_sessions
rename delete to delete_session
auto-create owner when load sqlite3 storage and in getowner
This commit is contained in:
2013-08-26 21:48:42 +02:00
parent 551b9fb1e3
commit 0bc47b1cf9
7 changed files with 83 additions and 29 deletions

View File

@ -23,11 +23,18 @@ from tiramisu.i18n import _
from tiramisu.error import ConfigError
def enumerate():
class Setting(object):
pass
setting = Setting()
def list_sessions():
return []
def delete(session_id):
def delete_session(session_id):
raise ConfigError(_('dictionary storage cannot delete session'))

View File

@ -25,22 +25,27 @@ import sqlite3
from glob import glob
extension = 'db'
dir_database = '/tmp'
class Setting(object):
extension = 'db'
dir_database = '/tmp'
setting = Setting()
def _gen_filename(name):
return join(dir_database, '{0}.{1}'.format(name, extension))
return join(setting.dir_database, '{0}.{1}'.format(name,
setting.extension))
def enumerate():
def list_sessions():
names = []
for filename in glob(_gen_filename('*')):
names.append(basename(splitext(filename)[0]))
return names
def delete(session_id):
def delete_session(session_id):
unlink(_gen_filename(session_id))
@ -73,7 +78,7 @@ class Storage(object):
self._cursor.close()
self._conn.close()
if not self.is_persistent:
delete(self._session_id)
delete_session(self._session_id)
class Cache(object):

View File

@ -28,11 +28,16 @@ class Values(Cache):
def __init__(self, storage):
"""init plugin means create values storage
"""
values_table = 'CREATE TABLE IF NOT EXISTS value(path text primary '
values_table += 'key, value text, owner text)'
# should init cache too
super(Values, self).__init__('value', storage)
values_table = 'CREATE TABLE IF NOT EXISTS value(path text primary '
values_table += 'key, value text, owner text)'
self.storage.execute(values_table)
for owner in self.storage.select("SELECT DISTINCT owner FROM value", tuple(), False):
try:
getattr(owners, owner[0])
except AttributeError:
owners.add_owner(owner[0])
# sqlite
def _sqlite_select(self, path):
@ -102,4 +107,10 @@ class Values(Cache):
if owner is None:
return default
else:
return getattr(owners, owner[0])
owner = owner[0]
# autocreate owners
try:
return getattr(owners, owner)
except AttributeError:
owners.add_owner(owner)
return getattr(owners, owner)