Skip to content

Latest commit

 

History

History
24 lines (19 loc) · 1.2 KB

README.rst

File metadata and controls

24 lines (19 loc) · 1.2 KB

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.