class documentation
class LRUSizeCache(LRUCache[
Constructor: LRUSizeCache(max_size, after_cleanup_size, compute_size)
An LRUCache that removes things based on the size of the values.
This differs in that it doesn't care how many actual items there are, it just restricts the cache to be cleaned up after so much data is stored.
The size of items added will be computed using compute_size(value), which defaults to len() if not supplied.
| Method | __init__ |
Create a new LRUSizeCache. |
| Method | add |
Add a new value to the cache. |
| Method | cleanup |
Clear the cache until it shrinks to the requested size. |
| Method | resize |
Change the number of bytes that will be cached. |
| Method | _remove |
Undocumented |
| Method | _update |
Undocumented |
| Instance Variable | _after |
Undocumented |
| Instance Variable | _compute |
Undocumented |
| Instance Variable | _max |
Undocumented |
| Instance Variable | _value |
Undocumented |
Inherited from LRUCache:
| Method | __contains__ |
Check if key is in cache. |
| Method | __getitem__ |
Get item from cache and mark as recently used. |
| Method | __len__ |
Return number of items in cache. |
| Method | __setitem__ |
Add a value to the cache, there will be no cleanup function. |
| Method | cache |
Get the number of entries we will cache. |
| Method | clear |
Clear out all of the cache. |
| Method | get |
Get value from cache with default if not found. |
| Method | items |
Get the key:value pairs as a dict. |
| Method | keys |
Get the list of keys currently cached. |
| Method | _record |
Record that key was accessed. |
| Method | _remove |
Remove one entry from the lru, and handle consequences. |
| Method | _update |
Undocumented |
| Method | _walk |
Walk the LRU list, only meant to be used in tests. |
| Instance Variable | _after |
Undocumented |
| Instance Variable | _cache |
Undocumented |
| Instance Variable | _least |
Undocumented |
| Instance Variable | _max |
Undocumented |
| Instance Variable | _most |
Undocumented |
def __init__(self, max_size:
int = 1024 * 1024, after_cleanup_size: int | None = None, compute_size: Callable[ [ V], int] | None = None):
¶
overrides
dulwich.lru_cache.LRUCache.__init__Create a new LRUSizeCache.
| Parameters | |
maxint | The max number of bytes to store before we start clearing out entries. |
afterint | None | After cleaning up, shrink everything to this size. |
computeCallable[ | A function to compute the size of the values. We use a function here, so that you can pass 'len' if you are just using simple strings, or a more complex function if you are using something like a list of strings, or even a custom object. The function should take the form "compute_size(value) => integer". If not supplied, it defaults to 'len()' |
overrides
dulwich.lru_cache.LRUCache.cleanupClear the cache until it shrinks to the requested size.
This does not completely wipe the cache, just makes sure it is under the after_cleanup_size.