From: Mike Bayer Date: Mon, 17 Apr 2006 23:31:12 +0000 (+0000) Subject: added cgi parser for url key/value connect strings, towards [ticket:157] X-Git-Tag: rel_0_1_7~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b1871de64019c29bd093297e9194d5de7b93487;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added cgi parser for url key/value connect strings, towards [ticket:157] --- diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 8fe6c047af..f1bb76057d 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -30,6 +30,7 @@ import sql import sqlalchemy.databases import sqlalchemy.types as types import StringIO, sys, re +from cgi import parse_qsl __all__ = ['create_engine', 'engine_descriptors'] @@ -71,13 +72,10 @@ def create_engine(name, opts=None,**kwargs): have full ANSI support instead of using this feature. """ - m = re.match(r'(\w+)://(.*)', name) + m = re.match(r'(\w+)://(.*)', name) if m is not None: (name, args) = m.group(1, 2) - opts = {} - def assign(m): - opts[m.group(1)] = m.group(2) - re.sub(r'([^&]+)=([^&]*)', assign, args) + opts = dict( parse_qsl( args ) ) module = getattr(__import__('sqlalchemy.databases.%s' % name).databases, name) return module.engine(opts, **kwargs)