On Sep 25, 2006, at 7:25 AM, Stephen Chisholm wrote:
> Here is a method that works:
>
> If one runs a postgres server listening _only_ a Unix socket this code
> below shows how to connect and SA engine to it.
>
> import sqlalchemy as sa
>
> conn_args = {
> 'host':'/tmp/pg',
> 'database':'t-design',
> }
>
> db = sa.create_engine('postgres://', connect_args = conn_args)
If I add "unquote_plus" to all the arguments in the URL (right now
its just on password), you can get it like this:
u = url.make_url("postgres://%2Ffoo%2Fbar/t-design")
diff is below. there is at least one user who wants me to make this
change. the question is, is it rfc1738 compliant ?
Index: lib/sqlalchemy/engine/url.py
===================================================================
--- lib/sqlalchemy/engine/url.py (revision 1894)
+++ lib/sqlalchemy/engine/url.py (working copy)
@@ -18,12 +18,12 @@
def __str__(self):
s = self.drivername + "://"
if self.username is not None:
- s += self.username
+ s += urllib.quote_plus(self.username)
if self.password is not None:
s += ':' + urllib.quote_plus(self.password)
s += "@"
if self.host is not None:
- s += self.host
+ s += urllib.quote_plus(self.host)
if self.port is not None:
s += ':' + str(self.port)
if self.database is not None:
@@ -31,7 +31,7 @@
if len(self.query):
keys = self.query.keys()
keys.sort()
- s += '?' + "&".join(["%s=%s" % (k, self.query[k]) for k
in keys])
+ s += '?' + "&".join(["%s=%s" % (k, urllib.quote_plus
(self.query[k])) for k in keys])
return s
def get_module(self):
return getattr(__import__('sqlalchemy.databases.%s' %
self.drivername).databases, self.drivername)
@@ -82,8 +82,9 @@
else:
query = None
opts =
{'username':username,'password':password,'host':host,'port':port,'databa
se':database, 'query':query}
- if opts['password'] is not None:
- opts['password'] = urllib.unquote_plus(opts['password'])
+ for opt in ['username', 'password', 'host']:
+ if opts[opt] is not None:
+ opts[opt] = urllib.unquote_plus(opts[opt])
return URL(name, **opts)
else:
raise exceptions.ArgumentError("Could not parse rfc1738 URL
from string '%s'" % name)
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users