- TBD
- Add
CacheMaker.memoize
to create named, unbounded caches. - Add
UnboundedCache
, backed by a dict. - Add an
ignore_unhashable_args
option tolru_cache
: if True, the cache will discard arguments which cannot be hashed, rather than raising aTypeError
. - Expose cache object on the wrapped function, e.g. to allow extracting cache performance data easily (PR #20).
- Avoid crash when memoizing a
functools.partial
instance (PR #21). - Add explicit support for Python3.4, 3.5, and 3.6.
- Drop support for Python 2.6 and 3.2.
- Added a
CacheMaker
helper class: a maker keeps references (by name) to the caches it creates, to permit them to be cleared. - Added statistics to each cache, tracking lookups, hits, misses, and evictions.
- Automated building Sphinx docs and testing example snippets under
tox
. - Added Sphinx documentation.
- Dropped support for Python 2.5.
- Added support for PyPy.
- Added
setup.py docs
alias (installsSphinx
and dependencies). - Added
setup.py dev
alias (runsdevelop
plus installsnose
andcoverage
). - Added support for CI under supported Pythons using
tox
. - Bug: Remove potential race condition on lock in face of interrupts (Issue #10).
- Feature: added a new "invalidate()" method to allow removal of items from the cache (issue #8).
- Bug: LRUCache.put() could take multiple seconds on large caches (Issue #7).
- Bug: LRUCache was not thread safe (Issue #6).
- Bug: LRUCache.clock would waste RAM (Issue #4).
- Bug: repeated pushing of an entry would remove other cache entries (Issue #3).
- Bug: LRUCache would evict entries even when not full (Issue #2).
- Moved to GitHub (https://github.com/repoze/repoze.lru).
- Added Python 3.2 support.
- Python 2.4 no longer supported.
- Added tox.ini for easier testing.
- Add a thread lock around
clear
logic.
- Add a
clear
method.
- Initial release.