class Cache(): def __init__(self, host: str = 'localhost', port: int = 6379) -> None: self.__client = StrictRedis(host, port=port, decode_responses=True) self.__client.config_set('maxmemory', '600mb') self.__client.config_set('maxmemory-policy', 'allkeys-lru') self.__cache = RedisCache(redis_client=self.__client) self.__logger = Logger().getLogger(__file__) self.__logger.info("Initialize Cache.") def key_exists(self, *args): serialized_data = dumps([args[1:], {}]) key = f'rc:{args[0]}:{serialized_data}' return self.__client.exists(key) >= 1 def get_all_keys(self): return self.__client.keys() def get_key_count(self): return len(self.get_all_keys()) def __call__(self, ttl=60 * 60 * 24 * 7, limit=5000, namespace=None): return self.__cache.cache(ttl, limit, namespace)
'font': { 'color': 'white' }, 'x': 0.5 }) logger.info("Graph updated.") return dcc.Graph(id='test', figure=figure) return @set_clear_filters_callback(app) def clear_page(n_clicks): if get_trigger() == 'back': logger.info("Clearing filters.") return None, None else: return no_update def get_trigger(): ctx = dash.callback_context return ctx.triggered[0]['prop_id'].split('.')[0] set_app_layout(app) if __name__ == '__main__': logger.info("Starting server.") app.run_server(debug=True)