Description
memoize and keyed-memoize decorators.
memo: The classical memoize decorator. It keeps a cache args -> result so you don’t continue to perform the same computations.
keymemo(key): This decorator factory act as memo but it permits to specify a key function that takes the args of the decorated function and computes a key value to use as key in the cache dictionary. This way you can for example use a single value of a dictionary as key of the cache, or apply a function before passing something to the cache.
instancememo: The classical memoize decorator that can be applied to class functions. It keeps a cache args -> result so you don’t continue to perform the same computations. The cache is kept in the class namespace.
instancekeymemo(key): This decorator factory works like a combination of instancememo and keymemo, so it allows to specify a function that generate the cache key based on the function arguments and can be applied to class functions.
Usage
from memo import memo
@memo
def fibonacci(n):
if n <= 2:
return 1
return fibonacci(n-1) + fibonacci(n-2)
from memo import keymemo
@keymemo(lambda tup: tup[0])
def function(tup):
# build a cache based on the first value of a tuple
...
Installation
The package has been uploaded to PyPI, so you can install it with pip:
pip install python-memo
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file python-memo-0.1.0.tar.gz.
File metadata
- Download URL: python-memo-0.1.0.tar.gz
- Upload date:
- Size: 2.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b299488ba0263b04bf2cefde2879b3b26bbd37db53d997c9e656056844dcdba6
|
|
| MD5 |
0cc30dc9030824cac503081ba8498d5a
|
|
| BLAKE2b-256 |
50b29c7ab2c1b7832b10d6345088d363ae378aecd5fd1b6beb9a8bf794ec501d
|