redis-om-python/aredis_om/connections.py
melder 8325e6e111
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>
2022-09-08 13:53:24 +03:00

21 lines
524 B
Python

import os
from . import redis
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)
return redis.Redis(**kwargs)