From: Simo Sorce Date: Fri, 5 Dec 2014 19:28:22 +0000 (-0500) Subject: Allow to pass drectly a URL to the Store class X-Git-Tag: v0.3.0~6 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=commitdiff_plain;h=1c3343573f008e7fe4c14cfb3523960a5376dc30 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 --- 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)