Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py: 45%
22 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:48 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:48 +0000
1# SPDX-FileCopyrightText: 2015 Eric Larson
2#
3# SPDX-License-Identifier: Apache-2.0
5from __future__ import division
7from datetime import datetime
8from pip._vendor.cachecontrol.cache import BaseCache
11class RedisCache(BaseCache):
13 def __init__(self, conn):
14 self.conn = conn
16 def get(self, key):
17 return self.conn.get(key)
19 def set(self, key, value, expires=None):
20 if not expires:
21 self.conn.set(key, value)
22 elif isinstance(expires, datetime):
23 expires = expires - datetime.utcnow()
24 self.conn.setex(key, int(expires.total_seconds()), value)
25 else:
26 self.conn.setex(key, expires, value)
28 def delete(self, key):
29 self.conn.delete(key)
31 def clear(self):
32 """Helper for clearing all the keys in a database. Use with
33 caution!"""
34 for key in self.conn.keys():
35 self.conn.delete(key)
37 def close(self):
38 """Redis uses connection pooling, no need to close the connection."""
39 pass