Yet another in-memory caching package
- Free software: MIT license
- Documentation: https://yamicache.readthedocs.io.
- Memoization
- Selective caching based on decorators
- Mutli-threaded support
- Optional garbage collection thread
- Optional time-based cache expiration
from __future__ importprint_functionimporttimefromyamicacheimportCachec=Cache()
classMyApp(object):
@c.cached()deflong_op(self):
time.sleep(30)
return1app=MyApp()
t_start=time.time()
assertapp.long_op() ==1# takes 30sassertapp.long_op() ==1# takes 0sassertapp.long_op() ==1# takes 0sassert1< (time.time() -t_start) <31