Fixes issue decode_responses is set to True regardless if REDIS_OM_UR… (#373)

Fixes issue decode_responses is set to True regardless if REDIS_OM_URL environment variable is set.
Otherwise these warnings pop up when persisting objects:

Could not parse Redis response. Error was: "keywords must be strings". Probably, the connection is not set to decode responses from bytes. Attempting to decode response
using the encoding set on model class (<class 'redis_om.model.model.ModelMeta'>. Encoding: utf-8.

Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
This commit is contained in:
melder 2022-09-08 06:53:24 -04:00 committed by GitHub
parent 9e17678094
commit 8325e6e111
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -7,13 +7,14 @@ URL = os.environ.get("REDIS_OM_URL", None)
def get_redis_connection(**kwargs) -> redis.Redis:
# Decode from UTF-8 by default
if "decode_responses" not in kwargs:
kwargs["decode_responses"] = True
# If someone passed in a 'url' parameter, or specified a REDIS_OM_URL
# environment variable, we'll create the Redis client from the URL.
url = kwargs.pop("url", URL)
if url:
return redis.Redis.from_url(url, **kwargs)
# Decode from UTF-8 by default
if "decode_responses" not in kwargs:
kwargs["decode_responses"] = True
return redis.Redis(**kwargs)