init
This commit is contained in:
commit
38355d2442
9083 changed files with 1225834 additions and 0 deletions
34
.venv/lib/python3.8/site-packages/rich/_lru_cache.py
Normal file
34
.venv/lib/python3.8/site-packages/rich/_lru_cache.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
from collections import OrderedDict
|
||||
from typing import Dict, Generic, TypeVar
|
||||
|
||||
|
||||
CacheKey = TypeVar("CacheKey")
|
||||
CacheValue = TypeVar("CacheValue")
|
||||
|
||||
|
||||
class LRUCache(Generic[CacheKey, CacheValue], OrderedDict): # type: ignore # https://github.com/python/mypy/issues/6904
|
||||
"""
|
||||
A dictionary-like container that stores a given maximum items.
|
||||
|
||||
If an additional item is added when the LRUCache is full, the least
|
||||
recently used key is discarded to make room for the new item.
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, cache_size: int) -> None:
|
||||
self.cache_size = cache_size
|
||||
super(LRUCache, self).__init__()
|
||||
|
||||
def __setitem__(self, key: CacheKey, value: CacheValue) -> None:
|
||||
"""Store a new views, potentially discarding an old value."""
|
||||
if key not in self:
|
||||
if len(self) >= self.cache_size:
|
||||
self.popitem(last=False)
|
||||
OrderedDict.__setitem__(self, key, value)
|
||||
|
||||
def __getitem__(self: Dict[CacheKey, CacheValue], key: CacheKey) -> CacheValue:
|
||||
"""Gets the item, but also makes it most recent."""
|
||||
value: CacheValue = OrderedDict.__getitem__(self, key)
|
||||
OrderedDict.__delitem__(self, key)
|
||||
OrderedDict.__setitem__(self, key, value)
|
||||
return value
|
||||
Loading…
Add table
Add a link
Reference in a new issue