diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2013-09-29 14:03:46 -0700 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-09-29 17:10:54 -0400 |
| commit | 38e71f52eceda944bc167f347fba6386c30a3e39 (patch) | |
| tree | 1f574f7ae62352a457dcfe5d9e8eea538bf37c92 /lib/sqlalchemy/engine/url.py | |
| parent | 3e947c2c06abbcf4ea8df63f79e1efcfc367bd61 (diff) | |
| download | sqlalchemy-38e71f52eceda944bc167f347fba6386c30a3e39.tar.gz | |
Merge pull request #25 from gthb/ticket_2821
Hide password in URL and Engine __repr__
Conflicts:
lib/sqlalchemy/engine/url.py
Diffstat (limited to 'lib/sqlalchemy/engine/url.py')
| -rw-r--r-- | lib/sqlalchemy/engine/url.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py index c4931b48c..b15bfbd52 100644 --- a/lib/sqlalchemy/engine/url.py +++ b/lib/sqlalchemy/engine/url.py @@ -62,12 +62,13 @@ class URL(object): self.database = database self.query = query or {} - def __str__(self): + def __to_string__(self, hide_password=True): s = self.drivername + "://" if self.username is not None: s += self.username if self.password is not None: - s += ':' + urllib.quote_plus(self.password) + s += ':' + ('***' if hide_password + else urllib.quote_plus(self.password)) s += "@" if self.host is not None: s += self.host @@ -81,6 +82,12 @@ class URL(object): s += '?' + "&".join("%s=%s" % (k, self.query[k]) for k in keys) return s + def __str__(self): + return self.__to_string__(hide_password=False) + + def __repr__(self): + return self.__to_string__() + def __hash__(self): return hash(str(self)) |
