From 3d8eb77807bede9673bcf70f71716ca2b3312b3a Mon Sep 17 00:00:00 2001 From: androiddrew Date: Sun, 15 Oct 2017 23:27:12 -0400 Subject: [PATCH] changed settings access --- apistar_redis/redis_backend.py | 42 +++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/apistar_redis/redis_backend.py b/apistar_redis/redis_backend.py index 91cc454..e5dc844 100644 --- a/apistar_redis/redis_backend.py +++ b/apistar_redis/redis_backend.py @@ -1,3 +1,43 @@ import redis -from apistar import Command, Component, Settings \ No newline at end of file +from apistar import Component, Settings + + +class RedisBackend: + def __init__(self, settings: Settings) -> None: + """ + Configure a new redis backend + + Args: + settings: The application settings dictionary + + """ + + redis_config = settings['REDIS'] + self.host = redis_config.get('HOST') + self.port = redis_config.get('PORT') + self.password = redis_config.get('PASSWORD') + + # TODO add connection pooling + + +class Client: + def __init__(self, backend: RedisBackend): + self.backend = backend + + +def get_redis_client(backend: RedisBackend): + """ + Create a new redis session + + """ + client = redis.Redis(host=backend.host, + port=backend.port, + password=backend.password) + return client + + +components = [ + Component(RedisBackend), + Component(Client, init=get_redis_client) +]