comparison env/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 """
2 The cache object API for implementing caches. The default is a thread
3 safe in-memory dictionary.
4 """
5 from threading import Lock
6
7
8 class BaseCache(object):
9
10 def get(self, key):
11 raise NotImplementedError()
12
13 def set(self, key, value):
14 raise NotImplementedError()
15
16 def delete(self, key):
17 raise NotImplementedError()
18
19 def close(self):
20 pass
21
22
23 class DictCache(BaseCache):
24
25 def __init__(self, init_dict=None):
26 self.lock = Lock()
27 self.data = init_dict or {}
28
29 def get(self, key):
30 return self.data.get(key, None)
31
32 def set(self, key, value):
33 with self.lock:
34 self.data.update({key: value})
35
36 def delete(self, key):
37 with self.lock:
38 if key in self.data:
39 self.data.pop(key)