From 1c3343573f008e7fe4c14cfb3523960a5376dc30 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 5 Dec 2014 14:28:22 -0500 Subject: [PATCH] Allow to pass drectly a URL to the Store class This is useful for plugins that want to use their own database configuration but still want to reuse he Store class for simplicity. Signed-off-by: Simo Sorce Reviewed-by: Patrick Uiterwijk --- ipsilon/util/data.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py index 0e086b3..5045ee2 100755 --- a/ipsilon/util/data.py +++ b/ipsilon/util/data.py @@ -231,10 +231,15 @@ class FileQuery(Log): class Store(Log): - def __init__(self, config_name): - if config_name not in cherrypy.config: - raise NameError('Unknown database %s' % config_name) - name = cherrypy.config[config_name] + def __init__(self, config_name=None, database_url=None): + if config_name is None and database_url is None: + raise ValueError('config_name or database_url must be provided') + if config_name: + if config_name not in cherrypy.config: + raise NameError('Unknown database %s' % config_name) + name = cherrypy.config[config_name] + else: + name = database_url if name.startswith('configfile://'): _, filename = name.split('://') self._db = FileStore(filename) -- 2.20.1