Mercurial > repos > guerler > hhblits
comparison lib/python3.8/site-packages/pip/_vendor/cachecontrol/cache.py @ 0:9e54283cc701 draft
"planemo upload commit d12c32a45bcd441307e632fca6d9af7d60289d44"
author | guerler |
---|---|
date | Mon, 27 Jul 2020 03:47:31 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:9e54283cc701 |
---|---|
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) |