]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added cgi parser for url key/value connect strings, towards [ticket:157]
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 17 Apr 2006 23:31:12 +0000 (23:31 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 17 Apr 2006 23:31:12 +0000 (23:31 +0000)
lib/sqlalchemy/engine.py

index 8fe6c047af6dc66bf56ac08205aec5efff0426be..f1bb76057d68cee958812a5d4ba831efaf73a1de 100644 (file)
@@ -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)