NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2539 most downloaded on PyPI
A tiny LRU cache implementation and decorator
Last release 4 months ago
16 May 2026
Release timing varies
gaps range from 4 months to 8.7 years
Nearly every release is documented
notes for 8 of 8 stable releases
Nothing withdrawn
no release was ever pulled
17 years old
8 releases · first in 2009
Publish releases to PyPI via Github workflow.
Publish releases to PyPI via Github workflow.
Add Github workflow for unit tests / coverage.
Drop 'pkg_resources' namespace support.
Move package metadata to 'pyproject.toml'.
Move to 'src/' layout, with 'tests/unit/' at top level.
Add support for Python 3.10, 3.11, 3.12, 3.13, 3.14.
Drop support for Python < 3.10.
Replace 'nosetests' with 'pytest', and convert tests to use 'pytest' patterns (fixtures, 'assert') vs. 'unittest.TestCase' patterns.
Lint code, patterns using 'ruff check' / 'ruff format --check'.
Lint packaging using 'check-mainifest' / 'build' / 'twine'.
Add CacheMaker.memoize to create named, unbounded caches.
Add CacheMaker.memoize to create named, unbounded caches.
Add UnboundedCache, backed by a dict.
Add an ignore_unhashable_args option to lru_cache: if True, the cache will discard arguments which cannot be hashed, rather than raising a TypeError.
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.
One column per quarter.
Added a CacheMaker helper class: a maker keeps references (by name) to the caches it creates, to permit them to be cleared.
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 (installs Sphinx and dependencies).
Added setup.py dev alias (runs develop plus installs nose and coverage).
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).
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).
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 thread lock around clear logic.
- Add a clear method.
Add a clear method.
- Initial release.
Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →