mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-26 18:18:25 +00:00
remove mitmproxy.utils.lrucache
This commit is contained in:
parent
2cc4e92108
commit
6b4c705197
@ -1,32 +0,0 @@
|
||||
|
||||
|
||||
class LRUCache:
|
||||
|
||||
"""
|
||||
A simple LRU cache for generated values.
|
||||
"""
|
||||
|
||||
def __init__(self, size=100):
|
||||
self.size = size
|
||||
self.cache = {}
|
||||
self.cacheList = []
|
||||
|
||||
def get(self, gen, *args):
|
||||
"""
|
||||
gen: A (presumably expensive) generator function. The identity of
|
||||
gen is NOT taken into account by the cache.
|
||||
*args: A list of immutable arguments, used to establish identiy by
|
||||
*the cache, and passed to gen to generate values.
|
||||
"""
|
||||
if args in self.cache:
|
||||
self.cacheList.remove(args)
|
||||
self.cacheList.insert(0, args)
|
||||
return self.cache[args]
|
||||
else:
|
||||
ret = gen(*args)
|
||||
self.cacheList.insert(0, args)
|
||||
self.cache[args] = ret
|
||||
if len(self.cacheList) > self.size:
|
||||
d = self.cacheList.pop()
|
||||
self.cache.pop(d)
|
||||
return ret
|
Loading…
Reference in New Issue
Block a user