summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-04-17 23:31:12 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-04-17 23:31:12 +0000
commit5b1871de64019c29bd093297e9194d5de7b93487 (patch)
tree572075f9069b5476833ef07c58dd522d1f14ea69 /lib/sqlalchemy/engine.py
parent632dc1b7031bc0e54a88e3ed2d246e5a1bf262f2 (diff)
downloadsqlalchemy-5b1871de64019c29bd093297e9194d5de7b93487.tar.gz
added cgi parser for url key/value connect strings, towards [ticket:157]
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r--lib/sqlalchemy/engine.py8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py
index 8fe6c047a..f1bb76057 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)