General purpose efficient memoization
Project Description
Memoized
The common general versions of memoized decorators ([1], [2], [3]) are often good enough but they incur some overhead that can be avoided in more special cases ([4]). This package exposes a single callable, memoized, that picks an efficient memoization implementation based on the decorated function’s signature and a few user provided options. The included benchmark file gives an idea of the performance characteristics of the different possible implementations.
Additionally, memoized allows:
- Creating signature preserving decorators (through the decorator module).
- Passing an external object as the underlying storage (e.g. an LRU cache) instead of a dict that is used by default.
More options for customization and optimization may be added in the future.
News
0.3
- Python 3 compatibility.
0.2
- Add hashable parameter.
- Make it possible to use @memoized as equivalent of @memoized().
0.1
- Initial release
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size & hash SHA256 hash help | File type | Python version | Upload date |
---|---|---|---|
memoized-0.3.tar.gz (3.5 kB) Copy SHA256 hash SHA256 | Source | None | Apr 1, 2018 |