class documentation
class LRUSizeCache(LRUCache):
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__ |
Undocumented |
Method | __getitem__ |
Undocumented |
Method | __len__ |
Undocumented |
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 |
Undocumented |
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 |
overrides
dulwich.lru_cache.LRUCache.__init__
Create a new LRUSizeCache.
Parameters | |
max | The max number of bytes to store before we start clearing out entries. |
after | After cleaning up, shrink everything to this size. |
compute | 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.add
Add a new value to the cache.
Also, if the entry is ever removed from the cache, call cleanup(key, value).
Parameters | |
key | The key to store it under |
value | The object to store |
cleanup | None or a function taking (key, value) to indicate 'value' should be cleaned up. |
overrides
dulwich.lru_cache.LRUCache.cleanup
Clear 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.