- Improve
popitem()
exception context handling. - Replace
float('inf')
withmath.inf
. - Improve "envkey" documentation example.
- Support
user_function
withcachetools.func
decorators (Python 3.8 compatibility). - Support
cache_parameters()
withcachetools.func
decorators (Python 3.9 compatibility).
- Require Python 3.5 or later.
- Document how to use shared caches with
@cachedmethod
. - Fix pickling/unpickling of cache keys
- Fix Python 3.8 compatibility issue.
- Use
time.monotonic
as default timer if available. - Improve documentation regarding thread safety.
- Officially support Python 3.7.
- Drop Python 3.3 support (breaking change).
- Remove
missing
cache constructor parameter (breaking change). - Remove
self
from@cachedmethod
key arguments (breaking change). - Add support for
maxsize=None
incachetools.func
decorators.
- Deprecate
missing
cache constructor parameter. - Handle overridden
getsizeof()
method in subclasses. - Fix Python 2.7
RRCache
pickling issues. - Various documentation improvements.
- Officially support Python 3.6.
- Move documentation to RTD.
- Documentation: Update import paths for key functions (courtesy of slavkoja).
- Drop Python 3.2 support (breaking change).
- Drop support for deprecated features (breaking change).
- Move key functions to separate package (breaking change).
- Accept non-integer
maxsize
inCache.__repr__()
.
- Reimplement
LRUCache
andTTLCache
usingcollections.OrderedDict
. Note that this will break pickle compatibility with previous versions. - Fix
TTLCache
not calling__missing__()
of derived classes. - Handle
ValueError
inCache.__missing__()
for consistency with caching decorators. - Improve how
TTLCache
handles expired items. - Use
Counter.most_common()
forLFUCache.popitem()
.
- Refactor
Cache
base class. Note that this will break pickle compatibility with previous versions. - Clean up
LRUCache
andTTLCache
implementations.
- Refactor
LRUCache
andTTLCache
implementations. Note that this will break pickle compatibility with previous versions. - Document pending removal of deprecated features.
- Minor documentation improvements.
- Fix pickle tests.
- Fix pickling of large
LRUCache
andTTLCache
instances.
- Improve key functions.
- Improve documentation.
- Improve unit test coverage.
- Add
@cached
function decorator. - Add
hashkey
andtypedkey
fuctions. - Add key and lock arguments to
@cachedmethod
. - Set
__wrapped__
attributes for Python versions < 3.2. - Move
functools
compatible decorators tocachetools.func
. - Deprecate
@cachedmethod
typed argument. - Deprecate cache attribute for
@cachedmethod
wrappers. - Deprecate getsizeof and lock arguments for cachetools.func decorator.
- Clear cache statistics when calling
clear_cache()
.
- Allow simple cache instances to be pickled.
- Refactor
Cache.getsizeof
andCache.missing
default implementation.
- Code cleanup for improved PEP 8 conformance.
- Add documentation and unit tests for using
@cachedmethod
with generic mutable mappings. - Improve documentation.
- Provide
RRCache.choice
property. - Improve documentation.
- Use a
NestedTimer
forTTLCache
.
- Deprecate
Cache.getsize()
.
- Ignore
ValueError
raised on cache insertion in decorators. - Add
Cache.getsize()
. - Add
Cache.__missing__()
. - Feature freeze for v1.0.
- Fix MANIFEST.in.
- Deprecate
TTLCache.ExpiredError
. - Add choice argument to
RRCache
constructor. - Refactor
LFUCache
,LRUCache
andTTLCache
. - Use custom
NullContext
implementation for unsynchronized function decorators.
- Raise
TTLCache.ExpiredError
for expiredTTLCache
items. - Support unsynchronized function decorators.
- Allow
@cachedmethod.cache()
to return None
- No formatting of
KeyError
arguments. - Update
README.rst
.
- Do not delete expired items in TTLCache.__getitem__().
- Add
@ttl_cache
function decorator. - Fix public
getsizeof()
usage.
- Add
TTLCache
. - Add
Cache
base class. - Remove
@cachedmethod
lock parameter.
- Add proper locking for
cache_clear()
andcache_info()
. - Report size in
cache_info()
.
- Remove
@cache
decorator. - Add
size
,getsizeof
members. - Add
@cachedmethod
decorator.
- Add
@cache
decorator. - Update documentation.
- Initial release.