SickGear/lib/cachecontrol/caches/redis_cache.py
Prinz23 a951b34b7f Update Cachecontrol 0.12.6 (167a605) → 0.12.11 (c05ef9e).
Add Filelock 3.9.0 (ce3e891).
Remove Lockfile no longer used by Cachecontrol.
2023-02-09 14:18:18 +00:00

39 lines
1,021 B
Python

# SPDX-FileCopyrightText: 2015 Eric Larson
#
# SPDX-License-Identifier: Apache-2.0
from __future__ import division
from datetime import datetime
from cachecontrol.cache import BaseCache
class RedisCache(BaseCache):
def __init__(self, conn):
self.conn = conn
def get(self, key):
return self.conn.get(key)
def set(self, key, value, expires=None):
if not expires:
self.conn.set(key, value)
elif isinstance(expires, datetime):
expires = expires - datetime.utcnow()
self.conn.setex(key, int(expires.total_seconds()), value)
else:
self.conn.setex(key, expires, value)
def delete(self, key):
self.conn.delete(key)
def clear(self):
"""Helper for clearing all the keys in a database. Use with
caution!"""
for key in self.conn.keys():
self.conn.delete(key)
def close(self):
"""Redis uses connection pooling, no need to close the connection."""
pass