Really! Small! Cache!
A Really! Small! Cache! for python 2 and 3.
Working on a totally separate project, I found myself wanting to use funcy.memoize…a lot. There was a major problem, though: I couldn’t test with it. There was no (obvious) way to turn it off. It was making me crazy, so I spent a few hours writing a small module (even smaller than this, originally) to suit the memoization needs, with a hook to turn it off for testing. When I got to the end of my feature sprint for that project, I decided it made more sense to spin it out into its own project, so here we are!
- Simple upsert and get workflow
- Decorator for “memoization”
- Enabling and disabling functionality, including a context manager
- Work directly on the imported module… no additional instantiation
pip install microcache
>>> import microcache >>> microcache.has('key') False >>> microcache.get('key', default='default') 'default' >>> microcache.upsert('key', 'value') >>> microcache.get('key') 'value' >>> microcache.disable() >>> microcache.get('key')
Decorator and context manager
import microcache import time @microcache.this def somefunc(): time.sleep(5) return "this will be cached, and you won't have to wait a second time!" def test_somefunc(): somefunc() somefunc() with microcache.temporarily_disabled(): # now we'll have to wait again somefunc()
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size microcache-0.2-py2.py3-none-any.whl (3.6 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View|
|Filename, size microcache-0.2.tar.gz (3.0 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for microcache-0.2-py2.py3-none-any.whl