diff options
author | Jon Parise <jon@indelible.org> | 2012-07-06 17:44:26 -0700 |
---|---|---|
committer | Jon Parise <jon@indelible.org> | 2012-07-06 17:49:37 -0700 |
commit | a378cdb91fbf3909b67748bc18a12f0dbbcaacf5 (patch) | |
tree | 43ed3deedc83fc3746d41b00515b200295550d7d /redis/utils.py | |
parent | 1f6c4a5ab1fefb125fb8af9b3974c3f25fd44f8f (diff) | |
download | redis-py-a378cdb91fbf3909b67748bc18a12f0dbbcaacf5.tar.gz |
Improved `from_url()` support.
`from_url()` is now implemented as a classmethod. The previous
implementation always returned instances of the `Redis` class. This
new approach lets us construct StrictRedis instances (or any other
class derived from StrictRedis, including Redis).
`utils.from_url()` has been preserved for backwards compatibility.
Also, both versions of `from_url()` now pass along any additional
keyword arguments to the class's initializer.
Diffstat (limited to 'redis/utils.py')
-rw-r--r-- | redis/utils.py | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/redis/utils.py b/redis/utils.py index 863541d..8e3b124 100644 --- a/redis/utils.py +++ b/redis/utils.py @@ -1,31 +1,9 @@ -from urlparse import urlparse - from .client import Redis -DEFAULT_DATABASE_ID = 0 - -def from_url(url, db=None): +def from_url(url, db=None, **kwargs): """Returns an active Redis client generated from the given database URL. Will attempt to extract the database id from the path url fragment, if none is provided. """ - - url = urlparse(url) - - # Make sure it's a redis database. - if url.scheme: - assert url.scheme == 'redis' - - # Attempt to resolve database id. - if db is None: - try: - db = int(url.path.replace('/', '')) - except (AttributeError, ValueError): - db = DEFAULT_DATABASE_ID - - return Redis( - host=url.hostname, - port=url.port, - db=db, - password=url.password)
\ No newline at end of file + return Redis.from_url(url, db, **kwargs) |