Skip to content

jaemk/cashed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

python-cashed Build Status PyPI version

Simple caching using decorators

Intallation

pip install cashed

Usage

The cached decorator requires the arguments of the wrapped function to be hashable. cached accepts arguments capacity and seconds to limit the size of the cache and limit age of cached items. cached functions similarly to functools.lru_cache with the addition of the optional time constraint.

import time
from cashed import cached

@cached(capacity=100, seconds=5)
def fib(n):
    if n == 0 or n == 1:
        return n
    return fib(n-1) + fib(n-2)

fib(100)          # -> 354224848179261915075L
fib.cache_info()  # -> {'seconds': 5, 'hits': 98, 'capacity': 100, 'misses': 101, 'size': 100}
time.sleep(5)
fib.cache_info()  # -> {'hits': 98, 'capacity': 100, 'seconds': 5, 'misses': 101, 'size': 0}

Releases

No releases published

Packages

No packages published

Languages