Least Recently used Cache (LRU Cache) in Python
Project description
lru_cacher
=========
This is a Least Recently Used (LRU) Cache implementation in Python.
INSTALLATION
To install, simply run
python setup.py install
To run unit tests, run
python setup.py test
EXAMPLE USAGE
>>> from time import sleep
>>>
>>> from lru_cacher import LruCacher
>>>
>>> def slowSqrt(n):
>>> sleep(2)
>>> return n**0.5
>>>
>>> cache = LruCache(max_size=200, plan_b_func=slowSqrt)
>>> #This lookup will be slow
>>> answer, found_in_cache = cache.lookup(49)
>>> print answer, found_in_cache
7.0 False
>>>
>>> #This lookup will be fast
>>> answer, found_in_cache = cache.lookup(49)
>>> print answer, found_in_cache
7.0 True
>>>
>>> #Let's modify the cache
>>> cache.update(49, 'seven')
>>> answer, found_in_cache = cache.lookup(49)
>>> print answer, found_in_cache
seven True
=========
This is a Least Recently Used (LRU) Cache implementation in Python.
INSTALLATION
To install, simply run
python setup.py install
To run unit tests, run
python setup.py test
EXAMPLE USAGE
>>> from time import sleep
>>>
>>> from lru_cacher import LruCacher
>>>
>>> def slowSqrt(n):
>>> sleep(2)
>>> return n**0.5
>>>
>>> cache = LruCache(max_size=200, plan_b_func=slowSqrt)
>>> #This lookup will be slow
>>> answer, found_in_cache = cache.lookup(49)
>>> print answer, found_in_cache
7.0 False
>>>
>>> #This lookup will be fast
>>> answer, found_in_cache = cache.lookup(49)
>>> print answer, found_in_cache
7.0 True
>>>
>>> #Let's modify the cache
>>> cache.update(49, 'seven')
>>> answer, found_in_cache = cache.lookup(49)
>>> print answer, found_in_cache
seven True
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
lru_cacher-1.0.0.tar.gz
(2.5 kB
view hashes)
Built Distribution
Close
Hashes for lru_cacher-1.0.0.macosx-10.5-x86_64.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7a6fd2cb8b6227574b72f0d28e395c66864a3a24a69dec2d47731f321a43403 |
|
MD5 | c40d32639591d8951b7015b617f0c6a3 |
|
BLAKE2b-256 | 1bf83afca71abc11892bc9972c6714c153bf1b4a4bafbc352e072c7d6a1a24c7 |